php排序算法 - 选择排序

时间:2021-07-12 18:06:27   收藏:0   阅读:0

选择排序:

数据较少时可以用,缺点:时间复杂度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;
    }
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!