三種基本排序(直接插入,直接選擇,直接交換)

2021-10-08 15:42:36 字數 984 閱讀 4709

一:直接插入排序

將一串數分成兩部分,前部分是已經排序好的,後部分是未排序的。

開始將第乙個數作為已排序的第乙個數,未排序數在已排序中找插入的位置即完成排序。

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,...