插入排序 Java實現

2021-08-25 02:34:42 字數 1386 閱讀 4300

**原理:**通過構建有序序列,對未排序資料,在乙隻順序序列從後向前掃瞄,找到相應位置並插入。

步驟:

插入排序是從下標i為1的數開始進行遍歷,每一輪之後i++

從下標j為i開始與它左邊的數比較如果小於左邊的數則交換位置,

然後j–,重複步驟2

舉例:陣列arr=[53,27,36,15,69,42]

第一趟:

從下標為1開始,也就是第二個數 27,因為每次都是與左邊的數字進行比較,所以27與53比較,27小於53,所以交換27和53位置

第一趟結束後陣列變為:27 53 36 15 69 42

第二趟:

開始找第三個數的正確位置,36首先與左邊相鄰的數比較,36小於53,交換36和53的位置,陣列變為:27 36 53 15 69 43 然後再用36與27比較,36大於27 不交換位置

第二趟結束陣列為:27 36 53 15 69 43

第三趟:

查詢第四個數的正確位置

15與53比較小於53,交換位置

陣列變為:27 36 15 53 69 43

此時還不是15的正確位置,繼續與左邊的數比較,15小於36 交換其位置

陣列變為:27 15 36 53 69 43

15繼續與左邊的數比較,15小於27,交換其位置

陣列變為:15 27 36 69 43

第三趟結束後陣列為:15 27 36 53 69 43

後面以此類推

所謂插入排序法,就是檢查第i個數字,如果在它的左邊的數字比它大,進行交換,這個動作一直繼續下去,直到這個數字的左邊數字比它還要小,就可以停止了。插入排序法主要的迴圈有兩個變數:i和j,每一次執行這個迴圈,就會將第i個數字放到左邊恰當的位置去。

**如下:

public class insertion 

num++;

}} system.out.print("迴圈次數:"+num);

時間複雜度:

最壞為o(n^2)

平均時間複雜度為o(n^2)

插入排序 Java實現

插入排序 insertsort 插入排序通過把序列中的值插入乙個已經排序好的序列中,直到該序列的結束。插入排序是對氣泡排序的改進。它比氣泡排序快2倍。一般不用在資料大於1000的場合下使用插入排序,或者重複排序超過200資料項的序列。1 思想 每次選擇乙個元素k插入到之前已排好序的部分a 1 i 中...

JAVA實現插入排序

一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將新元素插入到該位...

插入排序 Java實現

插入排序,顧名思義就是將乙個數插入到一組已經生成的有序陣列當中,使之成為一組新的有序陣列。那麼我們考慮存在一組陣列,首先將p1插入到陣列中,使之成為有序陣列 接著將p2插入到陣列中,使之成為有序陣列.最後將pn插入到陣列中,使之成為有序陣列,這個有序陣列也就是我們最後的結果。附上 和實驗結果 pub...