程序员的成长之道

PHP实现选择排序算法

2019-09-27  本文已影响0人  菜菜菜鸟羊

直接上代码

/**
 * 选择排序
 * 思路:选择数据中最小(最大)的数,放到最前面,完成排序
 *
 * @param array $noSortArr  需要排序的数据
 * @return array
 */
function selectionSort($noSortArr) : array
{
    $len = count($noSortArr);
    for ($i = 0; $i < $len - 1; $i++) { //循环$len-1,原因:最后一个数就是排序的最后一个,所以就没有必要循环了
        $minIndex = $i;   //标记第$i为最小,也就是默认第一个数为最小
        for ($j = $i + 1; $j < $len; $j++) {  //循环除了第一个数之外的数
            if ($noSortArr[$j] < $noSortArr[$minIndex]) {
                $minIndex = $j; //如果有比标记的数小的数,则标记这个数为新的最小数,以此类推
            }
        }
        //每轮循环结束后,把最小数放到循环数的开始位置
        $temp = $noSortArr[$i];
        $noSortArr[$i] = $noSortArr[$minIndex];
        $noSortArr[$minIndex] = $temp;

    }

    return $noSortArr;
}

-欢迎大家指正和优化,谢谢!

上一篇下一篇

猜你喜欢

热点阅读