中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php常見的排序方法有哪些

發布時間:2020-06-08 22:48:02 來源:億速云 閱讀:143 作者:Leah 欄目:編程語言

這篇文章運用了實例代碼展示php常見的排序方法,代碼非常詳細,可供感興趣的小伙伴們參考借鑒,希望對大家有所幫助。

PHP有多種排序方法,本篇文章給大家介紹幾種常見的排序方法:冒泡排序、交換法排序、選擇法排序、插入法排序、快速排序。希望對大家有所幫助。

排序方法1:冒泡排序

function BubbleSort($arr) {
    // 獲得數組總長度
    $num = count($arr);
    // 正向遍歷數組
    for ($i = 1; $i < $num; $i++) {
        // 反向遍歷
        for ($j = $num - 1; $j >= $i ; $j--) {
            // 相鄰兩個數比較
            if ($arr[$j] < $arr[$j-1]) {
                // 暫存較小的數
                $iTemp = $arr[$j-1];
                // 把較大的放前面
                $arr[$j-1] = $arr[$j];
                // 較小的放后面
                $arr[$j] = $iTemp;
            }
        }
    }
    return $arr;
}

排序方法2:交換法排序

function ExchangeSort($arr){
    $num = count($arr);
    // 遍歷數組
    for ($i = 0;$i < $num - 1; $i++) {
        // 獲得當前索引的下一個索引
        for ($j = $i + 1; $j < $num; $j++) {
            // 比較相鄰兩個的值大小
            if ($arr[$j] < $arr[$i]) {
                // 暫存較小的數
                $iTemp = $arr[$i];
                // 把較大的放前面
                $arr[$i] = $arr[$j];
                // 較小的放后面
                $arr[$j] = $iTemp;
            }
        }
    }
    return $arr;
}

排序方法3:選擇法排序

function SelectSort($arr) {
    // 獲得數組總長度
    $num = count($arr);
    // 遍歷數組
    for ($i = 0;$i < $num-1; $i++) {
        // 暫存當前值
        $iTemp = $arr[$i];
        // 暫存當前位置
        $iPos = $i;
        // 遍歷當前位置以后的數據
        for ($j = $i + 1;$j < $num; $j++){
            // 如果有小于當前值的
            if ($arr[$j] < $iTemp) {
                // 暫存最小值
                $iTemp = $arr[$j];
                // 暫存位置
                $iPos = $j;
            }
        }
        // 把當前值放到算好的位置
        $arr[$iPos] = $arr[$i];
        // 把當前值換成算好的值
        $arr[$i] = $iTemp;
    }
    return $arr;
}

排序方法4:插入法排序

function InsertSort($arr){
    $num = count($arr);
    // 遍歷數組
    for ($i = 1;$i < $num; $i++) {
        // 獲得當前值
        $iTemp = $arr[$i];
        // 獲得當前值的前一個位置
        $iPos = $i - 1;
        // 如果當前值小于前一個值切未到數組開始位置
        while (($iPos >= 0) && ($iTemp < $arr[$iPos])) {
            // 把前一個的值往后放一位
            $arr[$iPos + 1] = $arr[$iPos];
            // 位置遞減
            $iPos--;
        }
        $arr[$iPos+1] = $iTemp;
    }
    return $arr;
}

排序方法5:快速排序

function QuickSort($arr){
    $num = count($arr);
    $l = $r = 0;
    $left = $right = array();
    // 從索引的第二個開始遍歷數組
    for ($i = 1;$i < $num; $i++) {
        // 如果值小于索引1
        if ($arr[$i] < $arr[0]) {
            // 裝入左索引數組(小于索引1的數據)
            $left[] = $arr[$i];
            $l++;
        } else {
            // 否則裝入右索引中(大于索引1的數據)
            $right[] = $arr[$i];
            $r++; //
        }       
    }
    // 如果左索引有值 則對左索引排序
    if($l > 1) {
        $left = QuickSort($left);
    }
    // 排序后的數組
    $new_arr = $left;
    // 將當前數組第一個放到最后
    $new_arr[] = $arr[0];
    // 如果又索引有值 則對右索引排序
    if ($r > 1) {
        $right = QuickSort($right);
    }
    // 根據右索引的長度再次增加數據
    for($i = 0;$i < $r; $i++) {
        $new_arr[] = $right[$i];
    }
    return $new_arr;
}

看完上述內容,你們對php常見的排序方法有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韶关市| 定西市| 吴桥县| 合江县| 禄劝| 北碚区| 靖西县| 绥滨县| 延川县| 揭西县| 高清| 郸城县| 霍林郭勒市| 同心县| 林州市| 黄大仙区| 聂拉木县| 拉萨市| 湟源县| 滦平县| 舟山市| 浮梁县| 保靖县| 普宁市| 信宜市| 阳新县| 青岛市| 石城县| 汉川市| 铜陵市| 林西县| 杂多县| 宾阳县| 慈溪市| 鹤庆县| 松阳县| 聊城市| 泗洪县| 牟定县| 台州市| 广昌县|