php常見的排序方法有哪些

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

我們一直強(qiáng)調(diào)成都做網(wǎng)站、網(wǎng)站制作對(duì)于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對(duì)待,選擇一個(gè)安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)站設(shè)計(jì)公司不一定是大公司,創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

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

排序方法1:冒泡排序

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

排序方法2:交換法排序

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

排序方法3:選擇法排序

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

排序方法4:插入法排序

function InsertSort($arr){
    $num = count($arr);
    // 遍歷數(shù)組
    for ($i = 1;$i < $num; $i++) {
        // 獲得當(dāng)前值
        $iTemp = $arr[$i];
        // 獲得當(dāng)前值的前一個(gè)位置
        $iPos = $i - 1;
        // 如果當(dāng)前值小于前一個(gè)值切未到數(shù)組開始位置
        while (($iPos >= 0) && ($iTemp < $arr[$iPos])) {
            // 把前一個(gè)的值往后放一位
            $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();
    // 從索引的第二個(gè)開始遍歷數(shù)組
    for ($i = 1;$i < $num; $i++) {
        // 如果值小于索引1
        if ($arr[$i] < $arr[0]) {
            // 裝入左索引數(shù)組(小于索引1的數(shù)據(jù))
            $left[] = $arr[$i];
            $l++;
        } else {
            // 否則裝入右索引中(大于索引1的數(shù)據(jù))
            $right[] = $arr[$i];
            $r++; //
        }       
    }
    // 如果左索引有值 則對(duì)左索引排序
    if($l > 1) {
        $left = QuickSort($left);
    }
    // 排序后的數(shù)組
    $new_arr = $left;
    // 將當(dāng)前數(shù)組第一個(gè)放到最后
    $new_arr[] = $arr[0];
    // 如果又索引有值 則對(duì)右索引排序
    if ($r > 1) {
        $right = QuickSort($right);
    }
    // 根據(jù)右索引的長(zhǎng)度再次增加數(shù)據(jù)
    for($i = 0;$i < $r; $i++) {
        $new_arr[] = $right[$i];
    }
    return $new_arr;
}

看完上述內(nèi)容,你們對(duì)php常見的排序方法有進(jìn)一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。!

名稱欄目:php常見的排序方法有哪些
分享網(wǎng)址:http://bm7419.com/article12/jcihdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站、商城網(wǎng)站、App設(shè)計(jì)、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)