p=0;q=0; }
void quicksort(sqlist r,int s,int t) {
int i=s,j=t; if(s r[0]=r[s];p++; while(i while(i r[i]=r[j]; q++; p++; p++; while(i r[j]=r[i];q++;p++; } r[i]=r[0];p++; } else return; quicksort(r,s,j-1); quicksort(r,j+1,t); } void sort(sqlist r,int s,int t) { BeforeSort(); quicksort(r,s,t); display(p,q); } //堆排序 void sift(sqlist r,int s,int m) { int j; rec x; x=r[s]; for(j=2*s;j<=m;j*=2) {q++; if(j ++j; q++; if(!(x.key void heapsort(sqlist &r,int m) { int i;rec w; for(i=m/2;i>0;--i) sift(r,i,m); for(i=m;i>1;--i) { w=r[i];r[i]=r[1]; r[1]=w; p+=3; sift(r,1,i-1); } } void sorting(sqlist &r,int t) { BeforeSort(); heapsort(r,t); display(p,q); } void init(int a[]){//随机生成N个整数并 int i; srand ( ( unsigned int ) time ( NULL ) ); for(i=0;i void main() { int a1[N],i; int e=N; sqlist a,b,c,d; int c1[N]; int low=0,high=10; init(a1); for(i=0;i c1[i]=a1[i]; a[i].key=a1[i]; b[i].key=a1[i]; c[i].key=a1[i]; d[i].key=a1[i]; } cout<<\排序前数组:\\n\for(i=0;i cout< gensort(a1,sizeof(a1)/sizeof(int)); cout<<\插入排序运行结果:\\n\insertsort(a,N); cout<<\希尔排序运行结果:\\n\shellsort(b,N); cout<<\选择排序运行结果:\\n\gentsort(c1,N); cout<<\快速排序运行结果:\\n\sort(c,low,high); cout<<\堆排序运行结果:\\n\sorting(d,N); cout<<\排序后数组:\\n\for(i=0;i cout<