排序演算法(二) 插入排序原理及Java實現

2021-09-25 03:57:11 字數 726 閱讀 6583

插入排序原理:我覺得類似於鬥地主時給紙牌排序

(正序舉例)從第二個元素開始依次與前面的元素比較。

若此元素(比較元素)比前一位(被比較元素)的元素大,則停止比較,用此元素的後一位作為比較元素進入下一次迴圈。

若此元素(比較元素)比前一位(被比較元素)的元素小,則繼續與前面第二位(被比較元素)比較,依次比較下去。

直至此元素比被比較的元素大時停止繼續比較,並將此元素插入到此時的被比較元素後面一位;

或已經與第乙個元素比較完畢還不滿足停止條件,則停止比較並將此元素插入到第一元素的位置。

插入排序原理動態圖(摘自網路)

//插入排序(正序)

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 從無序區間的第乙個數,找到合適的位置插入到有序的陣列中 在最好的情況下,已經...