演算法排序之插入排序

2021-10-02 14:11:21 字數 1087 閱讀 4170

演算法思想

列如陣列:a=[10,4,1,3,2,0,5]; 如果要求公升序怎麼辦?

第一步:因為10是(a[0])在第乙個,所以10固定不動,讓4和10比,因為4小於10,所以,4和10交換位子,陣列變為a=[4,10,1,3,2,0,5]這1輪比較完畢。

第二步:將1與它的前乙個,也就是10比,因為1小於10,所以1和10交換位子,陣列變為a=[4,1,10,3,2,0,5]再將1與4比,比完之後1與4交換位子,陣列變為a=[1,4,10,3,2,0,5]這一輪比較完畢。

第三步:將3與10比,所以3與10交換位子,陣列變為a=[1,4,3,10,2,0,5] 將3與4比,所以3和4交換位子,得到a=[1,3,4,10,2,0,5]。將3與1比,因為3不比1小,所以位子不變,跳出迴圈,跳出這一輪比較。

第四步:將2與10…比較得到a=[1,2,3,4,10,0,5]第五步:將0與10比…比較得到a=[0,1,2,3,4,10,5]第六步:將5與10比…比較得到a=[0,1,2,3,4,5,10]插入排序結束。

/**

* 插入排序實現演算法

* 最好情況:o(n);---如果序列基本有序,則插入排序簡單有效

* 最壞情況:o(n^2);

* 優點:穩定

* 可以看成平時的摸牌

*/public

class

insertsort

;for

(int i=

0;i) system.out.

println()

;insertion_sort

(a,a.length)

;for

(int i=

0;istatic

void

insertion_sort

(int a,

int n)}}

}

排序演算法之插入排序

排序演算法之插入排序 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....