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;
}

PHP实战中知识总结