选择排序 Selection sort
它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
<?php function SelectSort($arr) { $count=count($arr); for ($i=0; $i <$count ; $i++) { //默认$i是最小的 $min=$i; for ($j=$i; $j <$count; $j++) { if ($arr[$min] > $arr[$j]) { //如果最小值大于下一个数,就立刻变值 $min=$j; } } //把最小的下标换成第一个值 if ($min!=$i) { list($arr[$min],$arr[$i])=[$arr[$i],$arr[$min]]; } } return $arr; } //假设需要排序的数组 $arr=array(5,9,8,2,4,6,7,1,25,13,18,22); $new_arr=SelectSort($arr); print_r($new_arr); ?>