数据结构课程设计
int i=s,j=t; if(s<t) {
r[0]=r[s];p++; while(i<j) { p++;
while(i<j&&r[j].key>=r[0].key) j--; r[i]=r[j]; q++; p++;
p++;
while(i<j&&r[i].key<=r[0].key) 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<m&&(r[j].key<r[j+1].key)) ++j; q++;
if(!(x.key<r[j].key)) break;
17