数据结构课程设计
b[0]=b[i]; s++; j=i-1; t++;
while(b[0].key<b[j].key) {
b[j+1]=b[j]; j--; s++; t++; }
b[j+1]=b[0]; s++; }
cout<<"移动次数="<<s<<","<<"比较次数="<<t<<endl; }
//希尔排序
void shellsort(sqlist b,int n) {
int i,j,gap; rec x;
int s=0,t=0; gap=n/2; while(gap>0) {
for(i=gap+1;i<n;i++) {
j=i-gap; while(j>0) { t++;
if(b[j].key>b[j+gap].key) {
x=b[j];b[j]=b[j+gap]; b[j+gap]=x;j=j-gap; s+=3; }
else j=0; gap=gap/2; }}
cout<<"移动次数="<<s<<","<<"比较次数="<<t<<endl;
15