PHP实现四种排序-选择排序

代码实现:

/**
*    选择排序
*    在一列数字中,选出最小数与第一个位置的数交换。然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
*/
function selectSort($arr){
    //定义中间变量
    $temp = 0;
    $mnt  = count($arr);
    for ($i=0; $i < $mnt-1; $i++) { 
        //定义最小位置
        $minIndex = $i;
        for ($j=$i+1; $j < $mnt; $j++) { 
            if($arr[$j] < $arr[$minIndex]){
                $minIndex = $j;
            }

        }
        if($i!=$minIndex){
            $temp           = $arr[$i];
            $arr[$i]        = $arr[$minIndex];
            $arr[$minIndex] = $temp;
        }
    }
    return $arr;
}
//测试
$arr = [5,2,1,1,3,1,4];
// $end = numSort($arr);
$end = selectSort($arr);
echo "<pre>";
print_r($end);

结论:

每一轮比较都可以确定一个位置,对于N个数,比较N-1轮可以确定N个位置上的数,因为确定了N-1个位置,最后一个位置也就确定了

猜你喜欢

转载自www.cnblogs.com/meetuj/p/10408420.html
今日推荐