選擇排序--php實現
阿新 • • 發佈:2018-11-08
原理:每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的資料元素排完.。
<?php /** * 選擇排序 * 資料結構----------------陣列 * 最差時間複雜度-----------O(n^2) * 最優時間複雜度-----------O(n^2) * 平均時間複雜度-----------O(n^2) * 空間複雜度--------------O(1) * 穩定性-----------------不穩定 */ $arr = [1, 3, 34, 2, 32, 2, 78, -43, 53, -35, 0]; function SelectionSort($arr) { $length = count($arr); for ($i = 0; $i < $length - 1; $i++) { // $i為已經排序序列的末尾下標 $min = $i; // 暫存未排列序列的最小值下標 for ($j = $i + 1; $j < $length; $j++) { // 遍歷未排列序列 if ($arr[$j] < $arr[$min]) { // 找出排列序列最小值,下標賦給$min $min = $j; } } if ($min != $i) { // 如果找到最小值,放到已排列序列末尾 $t = $arr[$min]; $arr[$min] = $arr[$i]; $arr[$i] = $t; } } return $arr; } print_r(SelectionSort($arr));