資料結構-插入排序-表插入排序
阿新 • • 發佈:2018-12-25
插入排序:
①直接插入排序。
②折半插入排序。
③2-路插入排序。
④表插入排序。←this
⑤希爾排序。
表插入排序,用表的方式進行插入排序操作
描述過程:將一個記錄插入到已排好序的有序表中,
優點:避免了移動
時間複雜度:O(n2)
const int SIZE=10; typedef struct{ int rc;//記錄項 int next;//指標項 }SLNode; typedef struct{ SLNode r[SIZE]; //0號單元為表頭結點 int length; //連結串列當前長度 }SLinkListType; //靜態連結串列型別 void Arrange(SLinikListType &SL){ int p = SL.r[0].next; // p指示第一個記錄的當前位置 for(int i=1;i<SL.length;++i){ while(p<i) p=SL.r[p].next; q = SL.r[p].next; if(p!=i){ SL.r[p]←→SL.r[i]; SL.r[i].next = p; } p = q; } }//Arrange