插入排序 Insertion Sort

2021-08-03 20:07:09 字數 720 閱讀 6539

寫點東西總結一下,朋友們,你們也自己寫寫東西總結一下,這樣有助於我們記住一些東西

先把**貼出來

public static void selectsort(intarr) else}}

}整體思想:

從陣列的第乙個數開始,之後每次放進來乙個數,都給他排好序,打牌抓牌一下,後面的數要插入前面排好序的數中就行了

這個要迴圈arr.length-1;這麼多次

步驟:1.最外層迴圈記錄排序的趟數,

2.然後裡面這層int j=i+1;j>0;j-- 這個意思就是i限制前面的數,j+1,就是往後移動一位,把這後面乙個數插入到前面排好序的陣列中。

所以這個迴圈是這個意思,自己理解一下。

如果從後面排序怎麼寫這個迴圈, 趟數是一樣的,那我j就是j=i-1;j歡飲來找茬,邏輯思維不行啊,這個不能怪我了。大腦的記憶體不夠吧,總是無法一下子載入那麼多東西到大腦中去。

3.這迴圈裡面就開始交換了,arr[j]temp=arr[j-1];

arr[j-1]=arr[j];

arr[j]=temp;

這裡遇到乙個問題,temp在外層迴圈外面定義的,我也不太明白,就是在交換的邏輯之前都可以吧感覺。

int temp;

temp=arr[j-1];

arr[j-1]=arr[j];

arr[j]=temp;

因為這個是臨時變數只起到交換數的作用交換後就沒用了。我的理解就是可以這麼寫的。

插入排序 折半插入排序

折半插入排序 binary insertion sort 直接插入排序採用順序查詢法查詢當前記錄在已排好序的序列中插入位置,這個 查詢 操作可利用 折半查詢 來實 現,由此進行的插入排序稱之為折半插入排序 binary insertion sort 演算法思想 1 將待排序的記錄存放在陣列r 1.n...

插入排序 折半插入排序

折半插入排序是基於直接插入排序的優化。直接插入排序 將第i個元素插入時,通過折半查詢的方式,來查詢第i個元素合適的位置。當0 i 1 位置上的元素都已經排序ok,現需要插入第i個元素,設其值為temp 令low 0,high i,mid high low 2。那麼temp可能插入的位置是 low h...

插入排序 希爾插入排序

本文借鑑於lsgo實驗室創始人馬老師 演算法 希爾插入排序 delta len nums 2 while delta 0 shell delta,nums delta delta 2return nums defshell delta,key for i in range delta,len key...