插入演算法
迴圈陣列,以指標資料為基值 並且記錄,,通過和左側(右側)的迴圈比較,當比較值大於(小於)基值時
將大的值至後,指標繼續移動,比較,置換。直到遇到小於基值,或者到陣列邊界時截止,並且置換至首位。
結束一次內迴圈,這是外迴圈的指標左側的是有序。
例:class sort
public static void main(string args) ;
sort b = new sort(array);
b.insertsort();
system.out.println(b);
} public void insertsort()
// 將外層的基值至於排序中正確的位置
a[in] = temp;
} system.out.println(step); }
public string tostring()
return b.tostring();
}}
迴圈,3 < 5 將大值像後置換。並且指標前移
5,5,1,7,9,2,0,
已到陣列邊界,將基值至於當前內迴圈指標位置。
3,5,1,7,9,2,0,
3,5,5,7,9,2,0,
3,3,5,7,9,2,0,
1,3,5,7,9,2,0,
1,3,5,7,9,9,0,
1,3,5,7,7,9,0,
1,3,5,5,7,9,0,
1,3,3,5,7,9,0,
1,2,3,5,7,9,0,
排序之插入排序
基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前邊已經排好序的子陣列中的適當位置,知道全部記錄插入完成為止。分類 直接插入排序和希爾 shell 排序。一 直接插入排序 基本操作 將當前無序區的第乙個記錄r i 插入到有序區r 1.i 1 中適當的位置,使得r 1.i 變為新的有序區。每次使...
排序之插入排序
本人是純正的蒟蒻。寫這些部落格目的是為了複習一些基礎知識,同時也幫助一下比我還要弱的蒟蒻 估計沒有 排序 排序有很多種,這裡先介紹幾種最基本,最簡單的。一.插入排序 主要思想 假設前面n個元素已經有序排列,現在要插入乙個元素,使這n 1個元素有序,先在原有序列中找到應該插入的位置,然後把這個位置的數...
7 插入排序之折半插入排序
7 折半插入排序 折半插入 考慮到插入第i個元素前面的i 1個元素是有序的,計算0 i 1的中間點,和i個元素進行比較,這樣完成了折半。然後不停地用上面的步驟,快速的找出第i個元素的位置。時間複雜度 折半插入排序比直接插入排序明顯減少了關鍵字之間的比較次數,但是移動次數是沒有改變。所以,折半插入排序...