插入排序

 

插入排序:

每次按鍵值把未排序的數插入到已排序隊列的適當位置,直到整個序列都排好序爲止。

基本思想:假設待排序的記錄存放在數組R[1..n]中。初始時,R[1]自成1個有序區,無序區爲R[2..n]。從i=2起直至i=n爲止,依次將R[i]插入當前的有序區R[1..i-1]中,生成含n個記錄的有序區。

實例圖如下:

《插入排序》

算法步驟:

《插入排序》

算法實現:

for (int i=low; i<high; i++)

                for (int j=i; j>low && dest[j-1]>dest[j]; j–)

                    swap(dest, j, j-1);

一種改進的算法:二分插入排序,在把待排序數插入到排好序時,通過二分查找的方法找到插入的位置。


算法使用範圍:對少量的數據比較高效。


 

点赞