数据结构课程设计
}
}
}//for
for(i=first,j=1; j<=amount; i=i%(amount)+1,j++)//将序列复制回去
*(data+j) = d[i];
3.4 希尔排序
希尔排序又称“缩小增量排序”,它也是一种属插入排序类的方法,但在时间效率上较前述集中排序方法有较大的改进。它的基本思想是:先将整个待排序记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。
算法如下:
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)
7