資料結構 PHP 選擇排序 氣泡排序

2021-10-11 19:12:26 字數 1561 閱讀 7099

選擇排序氣泡排序時間複雜度都屬於o(n^2)級別的排序演算法,由於它實現起來比較簡單,在不考慮效能的簡單情景下,可以優先考慮。

選擇排序的原理就是每迴圈一次就挑出最小的那個(假設從小到大排),然後記住最小位置的那個索引,把它安排到最前面去,已經排過的位置就往後排,以此類推達到選擇排序的目的:

/** * 從小到**擇排序

* @param array $arr

* @return array

*/function selectionsort(array $arr):array

}if($minindex != $i)

}return $arr;

}$arr = [1,16,5,8,4,6,2,9,6,4,10,11,5,7,3,6,12];

print_r(selectionsort($arr));

/** * [1,2,3,4,4,5,5,6,6,6,7,8,9,10,11,12,16]

*/演示輸出如下圖所示:

tips:時間複雜度是o(n^2)級別的。

氣泡排序的原理就是每次迴圈過程中,直接比較當前位置和下乙個位置的值比較,若當前位置值比下乙個位置值大則交換位置(假設從小到大排序,向右冒泡),這樣經過 n-1 次(n是元素個數)操作之後,就可以像冒泡一樣達到排序的效果。

/** * 氣泡排序從小到大

* @param array $arr

* @return array

*/function bubblingsort(array $arr): array}}

return $arr;

}$arr = [1,16,5,8,4,6,2,9,6,4,10,11,5,7,3,6,12];

print_r(bubblingsort($arr));

/** * [1,2,3,4,4,5,5,6,6,6,7,8,9,10,11,12,16]

*/演示輸出如下圖:

tips:時間複雜度是o(n^2)級別的。

**倉庫 :

掃碼關注愛因詩賢

C 資料結構(氣泡排序,選擇排序)

它重複地遍歷要拍學的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。氣泡排序演算法的運作如下 第一種方法 defbubble sort alis...

資料結構之冒泡 選擇排序

氣泡排序和選擇排序都屬於內部排序,這兩種排序方式的平均時間複雜度和最壞時間複雜度都是 一 氣泡排序 氣泡排序是對待排序序列下標有小到大開始遍歷比較,若這兩個元素逆序,則交換,不逆序則繼續比較一下乙個,比較陣列長度 1趟即可。若是某一趟沒有交換,則證明這個陣列序列有序,退出即可。如下 氣泡排序 每一趟...

資料結構 選擇排序 插入排序 氣泡排序 快速排序

排序方法按原理 其它說明 圖示 c 案例四個方面來分析 原理 將初始序列 a 0 a n 1 作為待排序序列,第一趟在待排序序列 a 0 a n 1 中找到最小值 或最大值 元素,將其與第乙個元素a 0 交換,這樣子序列 a 0 已經有序,下一趟在排序在待排序子串行 a 1 a n 1 中進行。第i...