插入排序
1.想象桌子上有一堆撲克牌,左手中只有一張,數值是2,然後從桌子上拿起一張,數值是5,將這張撲克牌的和左手上的撲克牌進行比較,把較小的哪乙個放到左邊,於是左手上的撲克牌變成兩張,排列從左到右分別是:2,5。
2.然後再從桌子上拿起一張牌3,此時左手上已經有兩張牌並且已經排好順序,左邊的小右邊的大。然後我們把剛剛拿起的第三張牌和左手上的撲克牌進行比較,從左開始,那麼就是先和2比較,3>2,於是再和下乙個比較,3<5,那麼就把5往後移動,在2和5之間留出乙個空格來放置3,停止比較,去桌子上抓下一張牌。
3.重複上一步,直到桌子上再也沒有撲克牌。
假設有陣列a[10]=,
我們把a[0]當成左手上的第一張牌,a[1]-a[9]當成是桌子上的那一堆牌:
然後開始執行插入排序,將4與8相比較,4<8
然後將8向右移動:
再把4放置到空位上:
這樣就做好了第一輪排序,再執行下一輪:
6先與4比較,6>4,不滿足條件再和下乙個比較,8>6,滿足條件,於是將8向右移動,這樣就又出現乙個空位:
把6填進去:
以此類推,直到所有元素都排序完成。
**:
class program
;console.writeline("未排序之前的順序:");
foreach (int s in a)
",s); }
int j, k;
for (int i=1;ij;k--)
a[j] = temp;
}console.writeline("排序之後的順序:");
foreach (int s in a)
", s); }
console.readkey();}}
執行結果:
排序小結 2 插入排序
插入排序 插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。本節介紹兩種插入排序方法 直接插入排序和希爾排序。直接插入排序基本思想 1 基本思想 假設待排序的記錄存放在陣列r 1.n 中。初...
排序演算法 2 插入排序
插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。本節介紹兩種插入排序方法 直接插入排序和希爾排序。直接插入排序 直接插入排序基本思想 1 基本思想 假設待排序的記錄存放在陣列r 1.n 中...
排序演算法 2 插入排序
思路是 每次從未排好的序列中選出第乙個元素插入到已排好的序列中。步驟可以大致歸納如下 1.從未排好的序列中拿出首元素,並把它賦值給temp變數 2.從排好的序列中,依次與temp進行比較,如果元素比temp大,則將元素後移 實際上放置temp的元素位置已經空出 3.直到找到乙個元素比temp小,將t...