php排序算法 - 选择排序

选择排序:

数据较少时可以用,缺点:时间复杂度n的平方,优点:空间复杂度小
具体实现:

   /**
     * 选择排序
     *
     * @param $array
     * @return mixed
     */
    public function sort($array)
    {
        $len = count($array);
        if ($len === 1) {
            return $array;
        }

        // 循环,假设第一个为最小的,依次和旁边的比较,比较完成就排好序
        for ($i = 0; $i < $len - 1; $i++) {
            $min = $i;
            for ($k = $i + 1; $k < $len; $k++) {
                // 当前的值和已知的最小的比较,如果当前值小于最小的值,则当前值为最小值
                if ($array[$k] < $array[$min]) {
                    $min = $k;
                }
            }

            if ($i !== $min) {
                $tmp = $array[$min];
                $array[$min] = $array[$i];
                $array[$i] = $tmp;
            }
        }

        return $array;
    }
posted @ 2021-07-11 16:06  alisleepy  阅读(96)  评论(0编辑  收藏  举报