数据结构实验报告——排序 联系客服

发布时间 : 星期二 文章数据结构实验报告——排序更新完毕开始阅读c0a78a39a9114431b90d6c85ec3a87c240288a9e

附录源码:

(包括三个cpp文件) Main.cpp

#include using namespace std; #include\ int

[])={&Sort::InsertSort,&Sort::ShellSort,&Sort::BubbleSort,&Sort::QuickSort,&Sort::SelectSort,&Sort::HeapSort,&Sort::MergeSort};

char *funcName[7]={\、插入排序:\、希尔排序:\、冒泡排序:\、快速排序:\、选择排序:\、堆 排 序:\、归并排序:\

*****************************统计时间函数***************************** void Statistics(Sort &obj,int i,int j) { }

obj.startTime=obj.GetNowTime(); (obj.*pFunction[i])(obj.pRandom1); obj.endTime=obj.GetNowTime();

obj.runtime[i][j]=obj.endTime-obj.startTime;

****************************主调函数********************************* int main(void) {

cout<<\程序说明:\\n1、默认产生10个随机数,如需加大数据量,请修改常量Max;\\n2、

默认打印排序的结果以显示算法正确与否,如果想不打印,请注释相关语句。\\n\\n\

9

Sort obj; obj.CreateData();

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int)); int i(0),j(0);

*************************乱序序列********************************* obj.SetTimesZero(); for(i=0;i<7;i++) { }

obj.RecordTimes(0);

*************************顺序序列********************************* obj.SetTimesZero(); for( i=0;i<7;i++)

Statistics(obj,i,1); Statistics(obj,i,0);

cout<

如果不输出各排序结果,请注释掉此两行

obj.PrintArray(obj.pRandom1); if(i!=6)

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int));

obj.RecordTimes(2);

*************************逆序序列********************************* obj.SetTimesZero();

10 }

for(i=1;i<=Max;i++)

obj.pRandom2[i]=obj.pRandom1[Max+1-i];

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int)); for(i=0;i<7;i++) { }

obj.RecordTimes(4);

************************统计排序数据****************************** obj.PrintStatistics(funcName); return 0;

Statistics(obj,i,2);

memcpy(obj.pRandom1,obj.pRandom2,(Max+1)*sizeof(long int));

Sort.cpp

const int Max =10; class Sort { public:

Sort(); ~Sort();

void CreateData(void); int InsertSort(long int []);

11

int ShellSort(long int []); int BubbleSort(long int []); int QuickSort(long int []);

int QuickSortRecursion(long int [], int ,int); int QuickSortPatition(long int [], int , int ); int SelectSort(long int []); int HeapSort(long int []);

void HeapSortSift(long int [], int , int ); int MergeSort(long int []);

void Merge(long int [],long int [], int , int , int ); void MergePass(long int [],long int [] , int ); long double GetNowTime(void); void PrintArray(long int*); void SetTimesZero(void); void RecordTimes(int);

friend void Statistics(Sort &,int ,int); void PrintStatistics(char *[]); friend int main(void);

private:

long int *pRandom1; long int *pRandom2; long double runtime[7][3];

12