直接排序是比較簡單的一種排序方法,它排序的原理如下:
如果有一組資料r[1…n],將這組資料分成二部分,一部分是已經排序過的資料,另一部分是未排序過。每次讀無序區的第乙個資料然後跟有序區的最後乙個資料進行比較,比如說是按遞增的話,那麼無序的數小於有序的數,那麼就將其儲存在r[0]當中,然後不斷的將有序區的資料往後移動,直到找到比他小的數。
void insertsort(seqlist &r, int n)}}
排序過程
初始關鍵字
[50] [37 80 42 12 23 83 84 96 82]
i=2r[0].key=37
[37 50][80 42 12 23 83 84 96 82]
i=380
[37 50 80][42 12 23 83 84 96 82]
i=442
[37 42 50 80][12 23 83 84 96 82]
i=512
[12 37 42 50 80][23 83 84 96 82]
i=623
[12 23 37 42 50 80][83 84 96 82]
i=783
[12 23 37 42 50 80 83][84 96 82]
i=884
[12 23 37 42 50 80 83 84][96 82]
i=996
[12 23 37 42 50 80 83 84 96][82]
i=10
82[12 23 37 42 50 80 82 83 84 96]
通過上面的分析可以知道,當前後兩個數相等時插入排序是不對其進行交換,如此可知道它是乙個穩定的排序演算法。
直接插入排序
直接插入排序是一種最簡單的排序方法,它的基本思想是依次將每個記錄插入到乙個有序中去。就是說,第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起直至...