直接插入排序演算法的基本操作是將一條記錄插入到已經排好序的有序表中,從而得到乙個新的、記錄數增加1的有序表。
演算法步驟
①設待排序的記錄存放到陣列k[1…n]中,k[1]是乙個有序序列。
②迴圈n-1次,每次使用順序查詢法,查詢k[i] (i=2,3…n),在已排好序的序列k[1…i-1]中的插入位置,然後將r[i]插入表長為i-1的有序序列k[1…i-1],直到將k[n]插入表長為n-1的有序序列k[1…n-1],最後得到乙個表長為n的有序序列。
#include
void
insertsort
(int k,
int n)
k[j+1]
=temp;}}
}int
main()
;insertsort
(a,10);
printf
("排序後:");
for(i=
0;i<
10;i++
)return0;
}
先將序列中第 1 個記錄看成是乙個有序子串行, 然後從第 2 個記錄開始,逐個進行插入,直至整個序列有序。
通常是先把第乙個記錄看成是乙個有序的序列,然後從第二個記錄開始依次進行比較
r2處的38比第乙個記錄 r1處的49小,那麼38插入到49的前面,把插入位置之後的記錄順次的後移一位,同時把帶插入記錄臨時儲存在 r0處(複製監視哨)。
然後把38插入到 r1處
下面是整個過程,一共7趟排序過程
直接插入排序
直接插入排序是一種最簡單的排序方法,它的基本思想是依次將每個記錄插入到乙個有序中去。就是說,第i i 1 遍整理時,a1,a2,ai 1已經是排好序的子串行 取出第i個元素ai,在已排好序的子串行為ai找到乙個合適的位置,並將它插到該位置上。易知上述排序當i 1時實際上為空操作,故可直接從i 2開始...
直接插入排序
直接插入排序的演算法思想 直接插入排序 straight insertion sort 的基本操作是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的 記錄數增 1 的有序表。根據該思想,編寫 如下 從已有序列的第0個記錄開始比較 public static void insertsort1 i...
直接插入排序
源文章url http student.zjzk.cn course ware data structure web paixu paixu8.2.1.1.htm 做過部分修改。1 基本思想 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至...