今天我們要講的排序演算法是插入排序,插入排序顧名思義就是將待排序的數字插入到合適的位置去。
我們來先看一張插入排序的原理圖:
(來自網路)
下面我們來看一下**實現:
public static int insertionsort(int arr)}}
return arr;
}
我們看到插入排序也需要兩層for迴圈,在最壞情況下,陣列完全倒序,它的最壞時間複雜度是o(n2)在最好情況下,也就是陣列已經有序,它的最好時間複雜度是o(n)同時,插入排序只有arr[j]>arr[j-1]時才進行交換
if(arr[j]>arr[j-1])
兩個相等數字,在排序前後它們的順序是不變的,插入排序是乙個穩定的排序演算法。 排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...
排序演算法之插入排序
排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...
排序演算法之插入排序
本節主要分析插入排序演算法的直接插入排序和希爾 shell 排序 又稱縮小增量排序 1.直接插入排序 該排序是最簡單的排序方法,其基本思想是 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至i n為止,依次將r i 插入當前的有序區r 1....