PHP实战中知识总结 / 排序算法 - 选择排序算法
选择排序算法(Selection Sort)是一种简单直观的排序算法个,其原理是在一列数字中,选出最小数放至起始位置,然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
/**
* 选择排序算法
* @param $arr
* @return array
*/
function SelectSort($arr)
{
for ($i = 0; $i < count($arr) - 1; $i++) {
$key = $i; // 当前值的位置
for ($j = $i + 1; $j < count($arr); $j++) { // 逐个比较后面的值
if ($arr[$key] > $arr[$j]) {
$key = $j;
}
}
if ($key != $i) {
$this->swap($arr, $key, $i);
}
}
return $arr;
}
/**
* 交换函数
* @param array $arr
* @param int $a
* @param int $b
*/
function swap(array &$arr, int $a, int $b)
{
$temp = $arr[$a];
$arr[$a] = $arr[$b];
$arr[$b] = $temp;
}