排序(冒泡,選擇,插入,快速)

2022-07-05 20:45:13 字數 1413 閱讀 8576

氣泡排序

func bubblesort(s int)int

} }return s

}

選擇排序

選擇是排序也屬於內部排序法,是從欲排序的資料中,按指定的規則選出某一元素,經過和其他元素重整,再依原則交換位置後達到排序目的。

第一次從r[0]-r[n-1]中選出最小值,與r[0]交換,第二次從r[1]-r[n-1]中選取最小值,與r[1]交換,第三次從r[2]-r[n-1]中選取最小值,與r[2]交換,...,第i次從r[i-1]-r[n-1]中選取最小值,與r[i-1]進行交換,...,第n-1次從r[n-2]~r[n-1]中選取最小值,與r[n-2]交換,總共通過n-1次,得到乙個按排序碼從小到大排序的有序序列。

func selectsort(s int)int

} // 交換操作

if minindex != i

} return s

}

插入排序

插入式排序也屬於內部排序法,是對於欲排序的元素以插入的方式找尋該元素的適當位置,以達到排序的目的。

把n個待排序的元素看成為乙個有序表和乙個無需表,開始時,有序表中只包含乙個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第乙個元素,把它的排序碼一次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表。

func insertsort(s int)int

// 插入

if insertindex + 1 != i

} return s

}

快速排序

快速排序是對氣泡排序的一種改進,基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料程式設計有序序列。

// left 表示陣列左邊的下標

// right 表示陣列右邊的下標

// array b小時要排序的陣列

func quicksort(left, right int, s int)

// 從p的右邊找到小於p的值

for;s[r] > p;

// l >= r 表明本次分解任務完成,break

if l >= r

// 交換

s[l],s[r] = s[r],s[l]

// 優化

if s[l] == p

if s[r] == p

} // 如果l == r, 再移動下

if l == r

// 向左遞迴

if left < r

// 向右遞迴

if right > l

}

冒泡 插入 選擇 快速排序

各位親 有時間可以去看看我的 金駿家居 店 買時說明在我的部落格看到有優惠哦 還有意外禮品贈送 真正的程式設計師 店 氣泡排序 每次找出最大或者最小的數放到序列的最後。插入排序 每一次查詢都把數放到已排序序列合適的位置。例子 4,3,2,1如數中的第乙個數肯定是有序的,從第二個數開始3小於4,放在已...

排序 快速,插入,選擇,冒泡

快速排序 陣列快速排序 先取出陣列第乙個 把每個和它比較,比它小的放在l陣列,大的放r陣列,一直比較,最後合到乙個陣列 function kuaisu a l r array for i 1 i c i else l kuaisu l r kuaisu r return array merge l,...

js 冒泡 選擇 插入 快速排序

生成陣列 function generatearr sizi 100000 else if item 5 0 elseif set.size sizi return set 氣泡排序 相鄰兩個數比較,如果前面的數小於後面的數則互換位置 function a arr console.log k k 選...