排序演算法之 直接插入排序(二)

2021-07-13 15:07:18 字數 685 閱讀 1993



基本思想:

乙個待排序陣列,開始劃分為乙個有序陣列和無序陣列,即就是假設 a[0]為有序

a[1]…a[n-1]為無序陣列,每次將乙個待排序的陣列的第乙個元素與有序區進行比較,然後

插入合適的位置

本例是採用優化的插入排序演算法,結構簡單

思路:

j代表前面有序的元素個數,

將a[j] 插入到前面a[0]…a[j - 1] ,用資料交換代替資料移動,如果a[j - 1] > a[j]

則交換a[j] 和 a[j - 1],再 j– 直到a[j -1] <= a[j],直至將乙個新資料插入到有序區間

這裡寫**片include#include

#include

#define n 10

using

namespace

std;

int main (int argc,char *argv)

for(i = 1;i < n ; i++)

}for(j= 0 ;j< n;j++)

return

0;}

0 24

34 41

58 62

64 67

69 78

press any key to continue

排序演算法 插入排序之直接插入排序

直接插入排序的核心思想是把乙個記錄插入乙個有序序列中,每插入乙個記錄就得到乙個新的有序序列,直到所有記錄都插入成功,得到有序序列。每次插入記錄時的有序序列如何得到,關鍵在第一次,第一次要插入的記錄時序列的第二個值,有序序列只有乙個值,就是第乙個記錄。a j 1 x j 1就是要插入的位置 print...

排序演算法之直接插入排序

直接插入排序 straight insertion sort 的基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。設陣列為a 0 n 1 其中紅色區域為有序區域 1.初始時,a 0 自成1個有序區,無序區為a 1.n 1 a 0 a ...

排序演算法之直接插入排序

直接插入排序類似於我們平常在打撲克摸牌時候的一種情形。我習慣於左手拿牌右手摸牌,每次先把左手中的牌齊整齊,然後右手新摸一張牌中把它放到左手中正確的位置,讓它成為乙個新的整齊的牌堆。如果根據上面的思路我們可以發現,直接插入排序的思想就是,從需要排序的第二個數字開始,拿取乙個數,與前面的數字進行比較,放...