发布时间:2020/11/20 作者:天马行空 阅读(1406)
选择排序,是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。
算法步骤
1、假如数组有n个值,那么就进行n-1轮筛选,每轮都筛选出最小(大)值;
2、筛选出来的值放在每轮的开头;
3、下一轮就往后面移一个位置开始。
动图演示

代码实现:
public function selectSort($arr)
{
$length = count($arr);
for ($i = 0; $i < $length - 1; $i ++) { // 进行$length-1轮筛选,每轮筛选出
$minIndex = $i;
for ($j = $i + 1; $j < $length; $j ++) {
if ($arr[$j] < $arr[$minIndex]) {
$minIndex = $j;
}
}
if ($minIndex != $i) {
$tmp = $arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $tmp;
}
}
return $arr;
}