溫馨提示×

溫馨提示×

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

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

php實(shí)現(xiàn)排序算法的方法

發(fā)布時間:2020-10-09 15:17:46 來源:億速云 閱讀:155 作者:小新 欄目:編程語言

小編給大家分享一下php實(shí)現(xiàn)排序算法的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

php實(shí)現(xiàn)排序算法的方法:1、冒泡排序,兩兩相比,每循環(huán)一輪就不用再比較最后一個元素;2、選擇排序,選定一個作為基本值,剩下的和這個比較,再調(diào)換位置。

php實(shí)現(xiàn)排序算法的方法:

1、冒泡排序:

兩兩相比,每循環(huán)一輪就不用再比較最后一個元素了,因?yàn)樽詈笠粋€元素已經(jīng)是最大或者最小。

function maopaoSort ($list)
{
    $len = count($list);
    for ($i = 0; $i < $len - 1; $i++) {
        for ($j = 0; $j < $len - $i - 1; $j++) {
            if ($list[$j] > $list[$j + 1]) {
                $tmp = $list[$j];
                $list[$j] = $list[$j + 1];
                $list[$j + 1] = $tmp;
            }
        }
    }
    return $list;
}

2、選擇排序:

選定一個作為基本值,剩下的和這個比較,然后調(diào)換位置。

function xuanzeSort ($list)
{
    $len = count($list);
    for ($i = 0; $i < $len - 1; $i++) {
        $pos = $i;
        for ($j = $i + 1; $j < $len; $j++) {
            if ($list[$pos] > $list[$j]) {
                $pos = $j;
            }
        }
        if ($pos != $i) {
            $tmp = $list[$pos];
            $list[$pos] = $list[$i];
            $list[$i] = $tmp;
        }
    }
    return $list;
}

3、快速排序:

原理就是拿出一個標(biāo)尺值,然后分為左右兩個數(shù)組,分別對比

function kuaisuSort ($list)
{
    $len = count($list);
    if ($len <= 1) {//遞歸出口
        return $list;
    }
    $base = $list[0];//選擇一個比較值
    $leftList = $rightList = [];
    for ($i = 1; $i < $len; $i++) {
        if ($base > $list[$i]) {
            $leftList[] = $list[$i];
        } else {
            $rightList[] = $list[$i];
        }
    }
    //遞歸分別再處理左右兩邊的數(shù)組
    $leftList = kuaisuSort($leftList);
    $rightList = kuaisuSort($rightList);
    return array_merge($leftList, [$base], $rightList);
}

4、插入排序:

假設(shè)前面的數(shù)都是排好順序的,要把第n個數(shù)插入到有序里

function charuSort ($list)
{
    $len = count($list);
    for ($i = 1; $i < $len; $i++) {
        $tmp = $list[$i];//獲取對比元素
        for ($j = $i - 1; $j > 0; $j--) {
            if ($list[$j] > $tmp) {
                $list[$j + 1] = $list[$j];
                $list[$j] = $tmp;
            } else {
                break;
            }
        }
    }
    return $list;
}

看完了這篇文章,相信你對php實(shí)現(xiàn)排序算法的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI