选择排序实例

选择排序:从第一个下标开始 1对多 比较完最小/最大的放到最小下标 然后再依次比较

selectSort($arr);
        print_r($arr);
    }
    function selectSort(&$arr){
        //定义进行交换的变量
        $temp=0;
        $lengh=count($arr);
        for($i=0;$i<$lengh-1;$i++){
            //假设$i就是最小值
            $valmin=$arr[$i]; //$arr[1]
            //记录最小值的下标
            $minkey=$i;       //下标为1
            for($j=$i+1;$j<$lengh;$j++){
                //最小值大于后面的数就进行交换
                if($valmin>$arr[$j]){ //$valmin=$arr[0] $arr[$j]=$arr[1] 7>5
                    $valmin=$arr[$j]; //执行$valmin=$arr[1] 7 和5 比较后      $valmin=$arr[1]为最小值
                    $minkey=$j; //重置最小值的下标为 $j 即 $i+1=0+1  = 1          $minkey=1
                }
            }
            //进行交换
            $temp=$arr[$i]; //$temp=$arr[0]
            $arr[$i]=$arr[$minkey]; //$arr[0]=$arr[1]
            $arr[$minkey]=$temp; //$arr[1]=$arr[0]
        }
    }
    
}

你可能感兴趣的:(选择排序实例)