下面的算法是用希尔排序法完成文件中各个记录按关键字递增次序排序请仔细阅读程序并把未完成的部分填上。
void ShellPass(SeqList R,int d)
{//希尔排序中的一趟排序,d为当前增量
for(i=d+i<=n;i++)//将rd+1n]分别插入各组当前的有序区
if(R[j]. key< (1) )
{
R[0]=R[i];j=i-d;
//R[0]只是暂存单元,不是哨兵
Do//查找Ri的插入位置
R+d= (2) //后移记录
j=j-d;
//查找前一记录
}while( (3) &.& R[o].key R[j+d]-R[o]; //插入Ri]到正确的位置上 }// end if }//ShellPass void ShellSort(SeqList R) int incrementn;/增量初值,不妨设n>0 do{ increment=increment/3+1;//求下一增量 do{ ShellPass(r, (4) );//一趟增量为 increment的 Shell插入排序 }while( (5) ) )//ShellSort (1) (2) (3) (4) (5)
订单号:
遇到问题请联系在线客服
订单号:
遇到问题请联系在线客服