插入排序,適用於新手來理解的一篇博客!

1.1瞭解插入排序?

插入排序的代碼實現雖然沒有冒泡排序和選擇排序那麼簡單粗暴,但是它的實現方式可謂是最容易理解的,就好像你在打撲克牌,往往都會用順序放牌,是一種直觀的排序方式,它的工作原理是通過構建有序序列,對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入。

1.2插入排序的算法步驟

將第一個元素看做爲有序序列,後將第二個到最後一個看成一個未排序序列,從頭到尾依次掃描未排序序列進行比較,找到相應的位置並進行插入。

1.3插入動圖演示

插入圖片:插入排序的動圖實現原理

1.4代碼實現部分

插入代碼:package cn.cjrh;
public class insertSort
{
public static void main(String[] args) {
int [] arr = {82,7,8,12,65,94,76,1,46,3,64,78,45,11,28,39,78,45,63,96,47,85,14,52,25,36,63}; //設一個不規則的int數組進行比較
System.out.println(“排序前”);
for (int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" “);
}
System.out.println();
for (int i = 1;i<arr.length;i++) //準備用用循壞來進行插入排序
{
int tmp = arr[i]; //使用一個變量來記錄當前所要比較的數值
int j=i; //記錄出當前循環的下標
while (j>0 &&tmp<arr[j-1]) //噹噹前下標不爲0 並且當前所要比較的值小於數組中上一個的值
{
arr[j]=arr[j-1]; //把數組中上一個值賦給當前 也就是j
j–; //j-- 保證一直往前循環,
}
if (j != i) //聯合上文,當j的值進行變化時說明a[j]的值已經被arr[j-1]覆蓋 也就是arr[j]==arr[j-1] value:true
{
arr[j] = tmp; //把當前的值賦值給arr[j]實現值的交換,以達到進行排序的方法
}
//QQ1600172003
}
System.out.println(“排序後”);
for (int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+” ");
}
}
}

其他語言代碼請翻閱菜鳥教程:https://www.runoob.com/w3cnote/insertion-sort.html

1.5 控制檯輸出結果

這個就是排序前後的區別

文章到此也就結束了,我自己的理解比較膚淺,也都寫在了註釋裏,歡迎各路大神對理解錯誤的地方發出修改,希望大家看完本文能有所獲,能夠給予你們小小的幫助。

第一次寫博客,沒有寫出好的排版以及高質量的文章,希望大家可以理解一下,覺得有幫助的話點個贊再走,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章