.
i=n-1; while(i>0) {
last=0;
for(j=0;j
Swap(A[j],A[j+1]); last=j; } i=last; } }
template
void QuickSort(T A[],int n) //快速排序 {
QSort(A,0,n-1); }
template
void QSort(T A[],int left,int right) {
int i,j;
if(left i=left; j=right+1; do { do i++;while (A[i]A[left]); if(i Swap(A[i],A[j]); }while(i Swap(A[left],A[j]); QSort(A,left,j-1); QSort(A,j+1,right); } } template void GQuickSort(T A[],int n) //改进的快速排序 { GQSort(A,0,n-1); } template . . void GQSort(T A[],int left,int right) { int i,j; if(right>=9) { if(left i=left; j=right+1; do { do i++;while (A[i]A[left]); if(i Swap(A[i],A[j]); }while(i Swap(A[left],A[j]); QSort(A,left,j-1); QSort(A,j+1,right); } } else { InsertSort(A,right-left+1); return ; } } template void Merge(T A[],int i1,int j1,int i2,int j2) //{ T* Temp=new T[j2-i1+1]; int i=i1,j=i2,k=0; while(i<=j1&&j<=j2) { if(A[i]<=A[j]) Temp[k++]=A[i++]; else Temp[k++]=A[j++]; } while (i<=j1) Temp[k++]=A[i++]; while(j<=j2) Temp[k++]=A[j++]; for(i=0;i . 两路合并排序 . delete[] Temp; } template void MergeSort(T A[],int n) { int i1,j1,i2,j2; int size=1; while(size i1=0; while(i1+size i2=i1+size; j1=i2-1; if(i2+size-1>n-1) j2=n-1; else j2=i2+size-1; Merge(A,i1,j1,i2,j2); i1=j2+1; } size*=2; } } int main() { clock_t start,finish; srand(time(NULL)); int n=1000; int *a=new int[n]; int *b=new int[n]; int *c=new int[n]; int *d=new int[n]; int *e=new int[n]; int *f=new int[n]; cout<<\待排序序列为:\ for(int i=0;i a[i]=rand()?; cout< . . e[i]=a[i]; f[i]=a[i]; } cout< start=clock(); SelectSort(a,n); cout<<\经过简单选择排序后的序列为:\ for(i=0;i cout<<\开始时间为:\\结束时间为:\时间为:\ start=clock(); InsertSort(b,n); cout<<\经过直接插入排序后的序列为:\ for(i=0;i cout<<\开始时间为:\\结束时间为:\时间为:\ start=clock(); BubbleSort(c,n); cout<<\经过冒泡排序后的序列为:\ for(i=0;i cout<<\开始时间为:\\结束时间为:\时间为:\ start=clock(); QuickSort(d,n); cout<<\经过快速排序后的序列为:\ for(i=0;i cout<<\开始时间为:\\结束时间为:\时间为:\ start=clock(); MergeSort(e,n); cout<<\经过两路合并排序后的序列为:\ for(i=0;i . 持续持续持续持续. cout< cout<<\开始时间为:\\结束时间为:\持续时间为:\ start=clock(); GQuickSort(f,n); cout<<\经过改进后的快速排序后的序列为:\ for(i=0;i cout<<\开始时间为:\\结束时间为:\时间为:\ return 0; } . 持续