一:直接插入排序
將一串數分成兩部分,前部分是已經排序好的,後部分是未排序的。
開始將第乙個數作為已排序的第乙個數,未排序數在已排序中找插入的位置即完成排序。
for
(i =
1; i < count; i++
)for
(t = i; t > j; t--
) data[j]
= tmp;
}
從第二個元素開始,在已排序部分找到插入位置後,將其後數後移,再插入
二:直接選擇排序
開始假設第乙個數為最小數,遍歷一次陣列尋找最小數。
遍歷一次後將最小數和未排序部分第乙個元素交換位置。
三:直接交換排序從第乙個元素開始,若後一元素比前一元素小,則兩元素交換。
注:增加效率方法:若某次遍歷沒有交換,則說明陣列已經排序完成。
外層遍歷只需遍歷到倒數第二個元素,內層遍歷不需要遍歷到已經排序完(即最後幾個元素)的元素。
直接插入排序的三種實現
本文 直接插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。設陣列為a 0 n 1 1.初始時,a 0 自成1個有序區,無序區為a 1.n 1 令i 1 2.將a i 併入當前的有序區a 0...
直接插入排序的三種實現
直接插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。設陣列為 a 0 n 1 1.初始時,a 0 自成1 個有序區,無序區為 a 1.n 1 令i 12.將 a i 併入當前的有序區 a ...
排序三 直接插入排序
設陣列為a n i 1。1.a 0.i 1 為有序區,現需要插入a i 到a 0 i 1 2.用a i 的值與a 1.n 1 中元素進行大小比較,找到插入位置將a i 插入,原插入位置上的元素依次後移。3.i 若i n則執行1。否則排序結束。來自維基百科 陣列s 9,1,5,3,8,7 第一趟 1,...