排序演算法相關理論網上資料已經很多了,這裡記錄一下**方便複習。
插入排序核心思想:
把陣列分為有序表和無序表,從後面無序表中依次取出第乙個數,插入到有序表的適當位置。
/**
* @description: 插入排序
* * 1.從第乙個元素開始,該元素可以認為已經被排序
* 2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄
* 3.如果該元素(已排序)大於新元素,將該元素移到下一位置
* 4.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
* 5.將新元素插入到該位置後
* 6.重複步驟2~5
*/public
class
insertsort
;int len = arr.length;
int insertval =0;
int insertindex =0;
for(
int i =
1; i < len; i++
)// 退出while迴圈時說明插入位置找到
// 因為退出while迴圈前多執行了一次insertindex--,所以 insertindex + 1 才是要插入的位置
if(insertindex +
1!= i)
system.out.
println
("第"
+i+"輪:"
+arrays.
tostring
(arr));
} system.out.
println
(arrays.
tostring
(arr));
}}
列印結果:
第1輪:[2,
5,9,
6,10,
21,16]
第2輪:[2,
5,9,
6,10,
21,16]
第3輪:[2,
5,6,
9,10,
21,16]
第4輪:[2,
5,6,
9,10,
21,16]
第5輪:[2,
5,6,
9,10,
21,16]
第6輪:[2,
5,6,
9,10,
16,21]
[2,5
,6,9
,10,16
,21]
基本排序演算法 插入排序
排序方式 插入排序 插入排序的 實現雖然沒有氣泡排序和選擇排序那麼簡單粗暴,但它的原理應該是最容易理解的了,因為只要打過撲克牌的人都應該能夠秒懂。當然,如果你說你打撲克牌摸牌的時候從來不按牌的大小整理牌,那估計這輩子你對插入排序的演算法都不會產生任何興趣了 哈哈?原理 從第二個元素開始 假定第乙個元...
基本排序演算法之插入排序
早上有人跟我說今天是二月二,龍抬頭的日子,大吉大利。確實,陽光明媚,風和日麗,適合出去散散步。又想回來,目前的我,基礎著實還是有點不夠紮實,那就一點一點的再去慢慢積累吧。那就從最簡單的開始吧,真知往往就在最簡單的東西裡面,一起去挖掘吧 just for studying.昨天又重新看了基本排序演算法...
基本排序演算法之插入排序
插入排序的基本方法是 每步將乙個待排序的元素,按其排序碼大小,插入到前面已經排好序的一組元素的適當位置上去,直到元素全部插入為止。可以選擇不同的方法在已經排好序的有序資料表中尋找插入位置。依據查詢方法的不同,有多種插入排序。下面介紹直接插入排序 直接插入排序的基本思想 當插入第i i 1 個元素時,...