parray[j]=parray[0]; movetimes[5]+=3;
i=j; } }
/************************************************************归并排序*********************************************************************/ int Sort::MergeSort(long int parray[]) {
long int r1[Max+1]; int h(1);
j=2*i; //被筛结点位于原来结点j的位置 }
while (h MergePass(parray, r1, h); //归并 h=2*h; MergePass(r1, parray, h); h=2*h; } } 第16页 return 0; void Sort::Merge(long int parray[], long int r1[], int s, int m, int t) //一次归并 { int i=s; int j=m+1; int k=s; while (i<=m && j<=t) { comparetimes[6]++; movetimes[6]++; if (parray[i]<=parray[j]) { r1[k++]=parray[i++]; } else r1[k++]=parray[j++]; } if (i<=m) while (i<=m) { r1[k++]=parray[i++]; 第17页 } movetimes[6]++; else } void Sort::MergePass(long int parray[], long int r1[], int h) //一趟归并 { int i(1),k; while (j<=t) { r1[k++]=parray[j++]; movetimes[6]++; } while (i<=Max-2*h+1) { Merge(parray, r1, i, i+h-1, i+2*h-1); i+=2*h; } if (i Merge(parray, r1, i, i+h-1, Max); else for (k=i; k<=Max; k++) { 第18页 } } r1[k]=parray[k]; movetimes[6]++; /************************************************************获取当前时间**********************************************************************/ long double Sort::GetNowTime(void) { LARGE_INTEGER litmp; LONG64 QPart; QueryPerformanceCounter(&litmp); } /**************************************************************打印数组************************************************************************/ void Sort::PrintArray(long int *pRandom) { } 第19页 QPart=litmp.QuadPart; return (long double)QPart; for(int j=1;j<=Max;j++) cout< /************************************************************数组置零函数***********************************************************************/ void Sort::SetTimesZero() { } void Sort::RecordTimes(int j) { } /************************************************************输出排序数据***********************************************************************/ void Sort::PrintStatistics(char* funcname[]) { int i(0),j(0); cout<<\ 排序方法\\t\乱序耗时(μs) \顺序耗时(μs) \逆序耗时(μfor(int i=0;i<7;i++) { } timestable[i][j]=movetimes[i]; timestable[i][j+1]=comparetimes[i]; memset(comparetimes,0,sizeof(int)*7); memset(movetimes,0,sizeof(int)*7); s)\ for(i=0;i<7;i++) 第20页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验报告实验四排序(4)在线全文阅读。
相关推荐: