山東公務員考試網計算機常識-插入類排序法
1、 簡單插入排序法
所謂插入排序,是指將無序序列中的各元素依次插入到已經有序的線性表中。
一般來說,假設線性中前j-1元素已經有序,現在要將線性表中第j個元素插入到前面的有序子表中,插入過程如下:
道德將第j個元素放到一個變量T中,然后從有序子表的最后一個元素(即線性表中第j-1個元素)開始,往前逐個與T進行比較,將大于T的元素均依次向后移動一個位置,直到發現一個元素不大于T為止,此時就將T(即原線性表中的第j個元素)插入到剛移出的空位置上,有序子表的長度就變為j了。效率與冒泡法相同
在最壞情況下,簡單插入排序需要n(n-1)/2次比較。
2、 希爾排序法
基本思想如下:
將整個無序序列分割成若干小的子序列分別進行插入排序。
子序列的分割方法如下:
將相隔某個增量H的元素構成一個子序列。在排序過程中,逐次減小這個增量,最后當H減到1時,進行一次插入排序,排序就完成。增量序列一般取h=n/2k(k=1,2,…[log2n],其中n為待排序序列的長度。
其效率與增量序列有關。在最壞情況下,需要的比較次數為O(N1.5)。
更多精彩資訊請關注查字典資訊網,我們將持續為您更新最新資訊!