選擇排序

選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最?。ɑ蜃畲螅?/a>的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。 選擇排序是不穩定的排序方法(比如序列[5, 5, 3]第一次就將第一個[5]與[3]交換,導致第一個5挪動到第二個5后面)。

$arr=array(5,1,0,3,9,10,59,41,78,56,45,47,12,15,45,11);
selectSort($arr);
var_dump($arr);

function selectSort(&$arr){
    $size = count($arr);
    // $i < $size - 1 ; 防止后面  $j=$i+1 越界
    for($i = 0; $i < $size - 1; $i++){
        $max = $i;
        for($j = $i + 1; $j < $size; $j++){
            // 跟紀錄最大$arr[$max]比較,不是跟$arr[$i]比較
            if($arr[$j] > $arr[$max]){
                $max = $j;
            }
        }
        if($max != $i)
        swap($arr,$i,$max);
    }
}

function swap(&$arr,$a,$b){
    # code...
    $temp = $arr[$a];
    $arr[$a] = $arr[$b];
    $arr[$b] = $temp;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容