选择排序

思路分析:

  在要排序的一组数中,选出最小的一个数与第一个位置的数交换。然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。

//选择排序
function selectSort($arr)
{
    $len = count($arr);
    for ($i = 0; $i < $len - 1; $i++) {
        //先假设最小元素的位置
        $p = $i;
        for ($j = $i + 1; $j < $len; $j++) {
            if ($arr[$p] > $arr[$j]) {
                //循环过程中发现更小的元素则重新给 $p 赋值
                $p = $j;
            }
        }
        //如果最小值与假设的 $i 不同,则交换其位置
        if ($p != $i) {
            $tmp = $arr[$p];
            $arr[$p] = $arr[$i];
            $arr[$i] = $tmp;
        }
    }
    print_r($arr);
}

$arr = [3, 2, 8, 6, 7, 5, 9, 4, 1];
selectSort($arr);

 

posted @ 2019-06-04 22:38  咳嗽的小鱼  阅读(168)  评论(0编辑  收藏  举报