① 簡單插入排序法;
基本思想:所謂插入排序,是指將無序序列中的各元素依次插入到已經有序的線性表中。
一般來說,假設線性中前j-1元素已經有序,現在要將線性表中第j個元素插入到前面的有序子表中,插入過程如下:
道德將第j個元素放到一個變數T中,然後從有序子表的最後一個元素(即線性表中第j-1個元素)開始,往前逐個與T進行比較,將大於T的元素均依次向後移動一個位置,直到發現一個元素不大於T為止,此時就將T(即原線性表中的第j個元素)插入到剛移出的空位置上,有序子表的長度就變為j了。效率與冒泡法相同
在最壞情況下,簡單插入排序需要n(n-1)/2次比較。
② 希爾排序法;
基本思想:將整個無序序列分割成若干小的子序列分別進行插入排序。
子序列的分割方法如下:
將相隔某個增量H的元素構成一個子序列。在排序過程中,逐次減小這個增量,最後當H減到1時,進行一次插入排序,排序就完成。增量序列一般取h=n/2k(k=1,2,…【log2n】,其中n為待排序序列的長度。
其效率與增量序列有關。 在最壞情況下,需要的比較次數為O(N^1.5)。
相關詞條
-
希爾排序法
希爾排序法(縮小增量法) 屬於插入類排序,是將整個無序列分割成若干小的子序列分別進行插入排序的方法。
舉例 實現方法 -
外部排序
外部排序指的是大檔案的排序,即待排序的記錄存儲在外存儲器上,待排序的檔案無法一次裝入記憶體,需要在記憶體和外部存儲器之間進行多次數據交換,以達到排序整個檔案的目的。
規則種類 外部排序 初始順串 合併排序 其他算法 -
掌握標準C++類
類ifstream3.8.1 facet類12.2.2 facet類12.2.4
內容介紹 作品目錄 -
命名法
化學命名法是一種常用的命名法,它有許多方法來命名。
化學命名法 相關內容 生物學命名法 -
C++類和數據結構
數組和鍊表的對比 佇列的鍊表實現 佇列的數組實現
圖書信息 作者簡介 內容簡介 目錄 -
java集合框架
的Comparator對象就行了。Java標準類庫所用的排序算法已經作了最佳化...Java編程的所有程式設計師,全體中國人等。通常集合有兩種表示法,一種是列舉法,比如集合A={1,2,3,4},另一種是性質描述法,比如集合B={X...
集合論引 數組與容器 返回數組 相關類 複製數組 -
實用辦公不求人
Word表格與文檔美化 392.1 值班安排表 402.1.1 插入...距 452.1.3 在值班表中使用嵌套表格 461.插入嵌套表格...插入列 482.在表格前插入空行 493.輸入表格數據 494.在表格中...
內容介紹 作品目錄 -
數據結構與算法(第2版)
167圖8.9平衡的二叉排序的生成過程(帶★的點為插入後引起不平衡的點...向量/182.2.1向量的抽象數據類型/182.2.2向量的插入和刪除.../924.4.3BM匹配算法/95習題/98第5章排序/995.1...
內容簡介 編輯推薦 目錄 -
Word 2010實用技巧大全
文本※ 114疑難59 如何輸入偏旁部首 115※插入“符號...疑難60 如何輸入生僻字 117※利用插入符號輸入生僻 ...
疑難千尋千解叢書 內容提要