插入排序原理:我覺得類似於鬥地主時給紙牌排序
(正序舉例)從第二個元素開始依次與前面的元素比較。
若此元素(比較元素)比前一位(被比較元素)的元素大,則停止比較,用此元素的後一位作為比較元素進入下一次迴圈。
若此元素(比較元素)比前一位(被比較元素)的元素小,則繼續與前面第二位(被比較元素)比較,依次比較下去。
直至此元素比被比較的元素大時停止繼續比較,並將此元素插入到此時的被比較元素後面一位;
或已經與第乙個元素比較完畢還不滿足停止條件,則停止比較並將此元素插入到第一元素的位置。
插入排序原理動態圖(摘自網路)
//插入排序(正序)
int arr = ;
//因為迴圈中涉及到下標-1,所以要從1開始
for (int i = 1; i < arr.length; i++)
//如果j != i證明需要執行插入操作
if(j != i)
}system.out.println("最終結果:" + arrays.tostring(arr));
排序演算法 二 插入排序
繼上篇 排序演算法 一 基礎篇 這篇部落格咱們聊聊插入排序 經常用的插入排序方法有直接插入排序,折半插入排序,表插入排序和希爾排序。這篇部落格咱們重點說一下直接插入排序 直接插入排序 straight insertion sorting 它是一種簡單的排序方法。基本思想 依次將每個記錄插入到乙個已經...
排序演算法 二 插入排序
概念 把陣列分成兩部分,一部分是有順序的,第二部分是沒有順序的,從沒有順序的陣列中拿出來乙個,把他排在有序陣列中的相應位置 時間複雜度最好 o n 原陣列已經是公升序的。最壞 o n 平均 o n 插入演算法 function insert sort arr else arr j 1 value v...
演算法 排序演算法(二) 插入排序
本篇博文旨在介紹排序演算法中的插入排序 介紹了直接插入排序和希爾排序,並通過時間複雜度和空間複雜度進行了分析 最後用 實現了直接插入排序和希爾排序 1 將陣列分成有序和無序的兩塊區間,有序區間開始只劃分陣列的第乙個元素 2 從無序區間的第乙個數,找到合適的位置插入到有序的陣列中 在最好的情況下,已經...