經典排序 插入排序

2022-04-07 19:38:01 字數 1048 閱讀 5907

插入排序:是利用第1次排序到第

p次排序,位置0到

p-1上的位置都是排序好的。

這樣只要比較一下[i-1]和

[i]就知道還要不要進入第

2個迴圈。

如果[i-1]>[i]那麼就要繼續進入第二個迴圈。

將這個位置的[i]存起來

temp

;在令j=i

;開始迴圈交換位置,

temp[j]=temp[j-1]

這個時候進行下一步判斷,temp[j-1]>temp,如果

true

繼續交換,如果

false

,讓test[j]=temp

;即可陣列34,8,64,51,32,21

先比較34,8看要不要進入第二個迴圈,

34>8

,進入交換34,8的位置  

8,34

因為j--

的原因j=0

,退出迴圈,

i++,比較

34,64   34<64

不用進入

i++,比較

64,51 64>51

進入第二次迴圈。交換位置,

8,34,64,64

,雖然j-->0

,但是temp[j-1]一樣退出迴圈,進行

test[j]=temp,

8,34,51,64

i++,比較

64,32 64>32

進入第二個迴圈,交換位置是這樣的

8.34

,51,64,64

要明白這個8,34,51,64,64。是利用這個才實現將元素的插入的。找到乙個元素,也想這個元素在前邊排序的中間,正是因為這個才能準確

的這個元素插入到準確的位置。

並且也不能將test[j-1]>test做成if的判斷條件,因為即使沒有產生交換也會造成

j--從而不能排序不說,整個陣列的資料都發生了變化。

**如下:

public static void fastsortt(int test)

test[j] = temp;}}

}

經典排序之插入排序

插入排序包括 直接插入排序,折半插入排序,希爾排序。思想 直接插入排序 straight insertion sorting 的基本思想是 把n個待排序的元素看成為乙個有序表和乙個無序表,開始時有序表中只包含乙個元素,無序表中包含有n 1個元素,排序過程中每次從無序表中取出第乙個元素,將它插入到有序...

經典排序之插入排序

插入排序的思想很簡單,就是每向有序序列中插入乙個數,就把這個數依次與其他數比較,逐次替換。下面是 public class insertsort a i 1 keyword system.out.println arrays.tostring a public static void main st...

經典排序之插入排序

插入排序就是每一步都將乙個待排資料按其大小插入到已經排序的資料中的適當位置,直到全部插入完畢。插入排序方法分直接插入排序和折半插入排序兩種,這裡只介紹直接插入排序,折半插入排序留到 查詢 內容中進行。圖1演示了對4個元素進行直接插入排序的過程,共需要 a b c 三次插入。設陣列為a 0 n 1 1...