插入排序(insertion-sort)的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。
一般來說,插入排序都採用in-place在陣列上實現。具體演算法描述如下:
1.從第乙個元素開始,該元素可以認為已經被排序;
2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄;
3.如果該元素(已排序)大於新元素,將該元素移到下一位置;
4.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;
5.將新元素插入到該位置後;
6.重複步驟2~5。
最佳情況:t(n) = o(n)
最壞情況:t(n) = o(n2)
平均情況:t(n) = o(n2)
4 插入排序
插入排序的效果就像將乙個陣列模擬成兩個陣列的在選擇 插入的過程。假設在下標 i 之前的是數都已經排好了順序 0 i 1 那麼此次需要找到 i 位置的數的正確位置 k 在尋找這個位置 k 的過程中,逐個比較 i 之前排好順序的陣列,先比較最大的 i 1 位置的數 因為有序,所以 i 以前的數,i 1 ...
4 插入排序
插入排序是把序列的第乙個值當做是有序的序列,把餘下的序列按照排序規則 公升序還是降序 插入到該序列中,當遍歷至序列尾部後,則形成有序序列。例如 6 5 4 3 2 把6當做是有序序列,把餘下的序列 5,4,3,2 按照公升序插入到有序序列 6 中。第一趟結果 5 6 4 3 2 有序序列為 5,6 ...
插入排序演算法(4)
目錄 插入排序演算法原理 插入排序演算法的使用場景 插入排序演算法的實現 插入排序演算法的執行結果 在插入排序中,需要將取出的資料與其左邊的數字進行比較。就跟前面講的步驟一樣,如果左邊的數字更小,就不需要繼續比較,本輪操作到此結束,自然也不需要交換數字的位置。然而,如果取出的數字比左邊已歸位的數字都...