arithmetic 直接插入排序

2022-01-30 14:25:16 字數 1135 閱讀 2372

直接插入排序基本思想

1.直接插入排序的基本思想

直接插入排序(straight insertion sorting)的基本思想是:把n個待排序的元素看成為乙個有序表和乙個無序表,開始時有序表中只包含乙個元素,無序表中包含有n-1個元素,排序過程 中每次從無序表中取出第乙個元素,將它插入到有序表中的適當位置,使之成為新的有序表,重複n-1次可完成排序過程。

把a[i]插入到a[0],a[1],...,a[i-1]之中的具體實施過程為:先把a[i]賦值給變數t,然後將t依次與a[i-1],a[i- 2],...進行比較,將比t大的元素右移乙個位置,直到發現某個j(0<=j<=i-1),使得a[j]<=t或j為(-1),把t 賦值給a[j+1].

2、第i-1趟直接插入排序:

通常將乙個記錄r[i](i=2,3,…,n-1)插入到當前的有序區,使得插入後仍保證該區間裡的記錄是按關鍵字有序的操作稱第i-1趟直接插入排序。

排序過程的某一中間時刻,r被劃分成兩個子區間r[1..i-1](已排好序的有序區)和r[i..n](當前未排序的部分,可稱無序區)。

直接插入排序的基本操作是將當前無序區的第1個記錄r[i]插人到有序區r[1..i-1]中適當的位置上,使r[1..i]變為新的有序區。因為這種方法每次使有序區增加1個記錄,通常稱增量法。

插入排序與打撲克時整理手上的牌非常類似。摸來的第1張牌無須整理,此後每次從桌上的牌(無序區)中摸最上面的1張並插入左手的牌(有序區)中正確的位 置上。為了找到這個正確的位置,須自左向右(或自右向左)將摸來的牌與左手中已有的牌逐一比較。

**:如下;

直接插入排序

1intn =

10;2int

temp;

3int

a =;4

intj ;

5inti;6

for(  i =1

; i 

1; i++)

715else

1619}20

a[j +1

] =temp;21}

2223

foreach

(var item 

ina)

2427

console.readline();

參考:排序總結

arithmetic 直接插入排序

直接插入排序基本思想 1 直接插入排序的基本思想 直接插入排序 straight insertion sorting 的基本思想是 把n個待排序的元素看成為乙個有序表和乙個無序表,開始時有序表中只包含乙個元素,無序表中包含有n 1個元素,排序過程 中每次從無序表中取出第乙個元素,將它插入到有序表中的...

演算法 直接插入

排序挨個來,今天到插入排序。下面來談談插入排序裡的直接插入排序 解決麻煩的事情,可以先從簡單的 問題入手 咱們先開始兩個數的插入排序。具體過程 先把要排序的數放到臨時變數裡,然後與第乙個數比較,如果可以插入到第乙個數的位置,然後第乙個數向後移,即把第乙個數放到第二個位置。最後再把第二個數放到第乙個位...

直接插入演算法

插入演算法是每次將乙個新資料插入到有序佇列中的合適位置的一種演算法。演算法的詳細過程描述如下 假設有乙個無序佇列r1,r2,r3,rn 1 首先認為r1是有序的,然後將r2,r3,rn依次插入到這個有序佇列的合適位置,因此我們需要乙個外部迴圈 2 我們需要將ri插入到合適位置,ri前面的資料已經是有...