PHP-排序-选择排序

选择排序:
1:选择一个最小值(假设下标$i的值为最小值),放到序列的开头,作为已排序序列。
2:然后找到未排序序列中最小值放到已排序序列的结尾,直到所有元素排序完毕。
3:冒泡排序的区别:冒泡排序没发现一个异常顺序就进行一次调换,选择排序是以数组下标(每遍历一次记住最小值小标)代替中间的调换,等到最后进行一次调换即可。


    //选择排序
function select(&$arr){//地址引用。
    $len = count($arr);
    for($i=0;$i<$len;$i++){
        $tmp = $i;//假设$i为最小值,并作为已排序序列的最后一个元素
        for($j=$i;$j<$len;$j++){
            if($arr[$j]<$arr[$tmp]){
                $tmp = $j;//记录最小值得下标
            }
        }
        if($tmp!=$i){//根据下标是否改变,如果改变则调换位置。
            list($arr[$tmp],$arr[$i])=[$arr[$i],$arr[$tmp]];
        }
    }
}
    $arr = [4,5,3,9,6,8,1,3];
    select($arr);
    print_r($arr);
?> 

你可能感兴趣的:(PHP,PHP,选择排序)