(二)插入排序 直接插入排序 void InsertSort(Sqlist &L){//对顺序表L作直接插入排序 for(i=;i<=Llength;++i) if(LT(Lr[i]keyLr[i]key)) {//<需将Lr[i]插入有序子表复制为哨兵 Lr[]=Lr[i]; Lr[i]=Lr[i]; for(j=i;LT(Lr[]keyLr[j]key);j) Lr[j+]=Lr[]; } }//InsertSort 折半插入排序 void BinsertSort(SqList &L){//对顺序表L作折半插入排序 for(i=;i<=Llength;++i){ Lr[]=Lr[i]; low=; high=i; while(low<=high){ m=(low+high)/; if(LT(Lr[]lkeyLr[m]key)) high=m; else low=m+; }//while for(j=i;j>=high+;j) Lr[j+]=Lr[j]j; Lf[high+]=Lr[]; }//for }//BinsertSort 返回《数据结构》考研复习精编 [] [] [] [] [] [] |