插入法排序及原理

2021-06-19 01:15:22 字數 746 閱讀 3312

入排序的基本思想是,經過i-1遍處理後,l[1..i-1]己排好序。第i遍處理僅將l[i]插入l[1..i-1]的適當位置,使得l[1..i]又是排好序的序列。要達到這個目的,我們可以用順序比較的方法。首先比較l[i]和l[i-1],如果l[i-1]≤ l[i]騆[1..i]已排好序,第i遍處理就結束了;否則交換l[i]與l[i-1]的位置,繼續比較l[i-1]和l[i-2],直到找到某乙個位置j(1≤j≤i-1),使得l[j] ≤l[j+1]時為止。

簡言之,插入排序就是每一步都將乙個待排資料按其大小插入到已經排序的資料中的適當位置,直到全部插入完畢。插入排序方法分直接插入排序和折半插入排序兩種,這裡只介紹直接插入排序,折半插入排序留到「查詢」內容中進行。

圖1演示了對4個元素進行直接插入排序的過程,共需要(a),(b),(c)三次插入。

for(;j>=0&&temp      a[j+1]=a[j];                       //將大於temp的值整體後移乙個單位  

}  a[j+1]=temp;  

}  for(int i=0;i      system.out.println(a[i]);  

}  

插入法排序

static void insertsort int nums 挪位置 for int k i 1 k index k 插入 nums index insert static void main string args console.writeline 排序前的陣列 foreach var n i...

插入法排序

插入法排序較為複雜,其基本工作原理是抽出乙個資料,在前面的資料中尋找相應的位置插入,直到完成排序。以數字9 6 15 4 2為例,採用插入法實現數字按從小到大進行排序,插入法排序過程如圖8.23所示。圖8.23 插入法排序過程示意圖 從圖8.23可以發現,在第一次排序過程中將第乙個數取出來,並放置在...

03插入法排序

插入法排序有個例子講的形象,比如玩撲克牌,插入排序可以用打牌時對摸起的牌根據牌的點數來對其進行插入排列來描述。可以把左手中的牌比做已經摸起的牌,即已經被排列好的牌,左手可以容納的牌數的空間可以假想為和要摸的牌的總數相同 而在桌子上的那部分沒摸的牌則是未被排序的牌,這二者的關係可以抽象為陣列中已經被排...