真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP中選擇排序的應(yīng)用-創(chuàng)新互聯(lián)

這篇文章運(yùn)用簡單易懂的例子給大家介紹PHP中選擇排序的應(yīng)用,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括網(wǎng)站制作、網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團(tuán)隊(duì)十多年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。

● 選擇排序也是內(nèi)部排序

● 排序思想:

第一次先隨便選擇一個(gè)數(shù),就是在要排序的數(shù)組中選擇一個(gè)元素和數(shù)組的其它元素比較。然后比較交換位置得到最小值或者大值,然后再次在剩下的數(shù)組中,選擇一個(gè)數(shù)和數(shù)組剩下的元素比較,最后得到第二個(gè)最小或大的元素。依次類推

● 示意圖:

選擇排序一共有數(shù)組大小 - 1 輪排序;每一輪排序又是一個(gè)循環(huán);先假定當(dāng)前的這個(gè)數(shù)組就是最小數(shù),然后和后面的元素依次比較,如果發(fā)現(xiàn)有比當(dāng)前數(shù)更小的數(shù),就重新確定最小數(shù),并得到下標(biāo),當(dāng)遍歷到數(shù)組的最后時(shí),就得到本輪最小數(shù)和下標(biāo),交換

1. 假設(shè)有一個(gè)待排序的數(shù)組 [3, 1, 15, 5, 20]

2. 隨機(jī)選擇一個(gè)元素,假設(shè)第一個(gè)就是最小的元素,拿 3 和數(shù)組剩下的元素比較,第一輪排序后得到最小元素 1

 $arr[$j]) { //假定的最小值大于后面的值,重置最小值
        $min = $arr[$j];
        $minIndex = $j;
    }
}
$arr[$minIndex] = $arr[0];
$arr[0] = $min;

3. 再次選擇一個(gè)假定最小值,與后面的元素一次比較,得到第二個(gè)最小值

 $arr[$j]) { //假定的最小值大于后面的值,重置最小值
        $min = $arr[$j];
        $minIndex = $j;
    }
}
if ($minIndex != 1) {
    $arr[$minIndex] = $arr[1];//假定的最小元素不是最小元素,那么把后面的最小元素和假定的最小元素做交換
    $arr[1] = $min;//元素下標(biāo)交換
}

4. 以此類推,就可以使用雙重 for 循環(huán),得到選擇排序的算法如下:

  public static function sortSelect(array $arr) :array
    {
        if (!is_array($arr)) {
            return ['message' => '$arr不是一個(gè)數(shù)組'];
        }
        $count = count($arr);
        if ($count <= 1) {
            return $arr;
        }
        for ($i = 0; $i < $count; $i++) {
            $minIndex = $i;
            $min = $arr[$i];
            for ($j = $i + 1; $j < $count; $j++) {
                if ($min > $arr[$j]) {//選擇的假定最小元素大于后面的元素
                    $min = $arr[$j];//把后面的最小元素賦值給假定的最小元素
                    $minIndex = $j;//把后面最小元素的坐標(biāo)賦值給假定的最小元素
                }
            }
            if ($minIndex != $i) {//如果在這個(gè)位置,一開始的假定最小元素的坐標(biāo)被替換了,說明假定最小元素不是最小元素,那么發(fā)生交換
                $arr[$minIndex] = $arr[$i];//交換最小元素,把最小元素和假定元素做交換
                $arr[$i] = $min;
            }
        }
        return $arr;
    }

● 完整代碼如下:

 $arr[$j]) { //假定的最小值大于后面的值,重置最小值
                $min = $arr[$j];
                $minIndex = $j;
            }
        }
        if ($minIndex != 0) {
            $arr[$minIndex] = $arr[0];//假定的最小元素不是最小元素,那么把后面的最小元素和假定的最小元素做交換
            $arr[0] = $min;//元素下標(biāo)交換
        }
        var_dump($arr);
        $minIndex = 1;//假設(shè)的最小元素的下表
        $min = $arr[1];//假定最小元素的值
        for ($j = $minIndex + 1; $j < $count; $j++) {
            if ($min > $arr[$j]) { //假定的最小值大于后面的值,重置最小值
                $min = $arr[$j];
                $minIndex = $j;
            }
        }
        if ($minIndex != 1) {
            $arr[$minIndex] = $arr[1];//假定的最小元素不是最小元素,那么把后面的最小元素和假定的最小元素做交換
            $arr[1] = $min;//元素下標(biāo)交換
        }
        var_dump($arr);
        $minIndex = 2;//假設(shè)的最小元素的下表
        $min = $arr[2];//假定最小元素的值
        for ($j = $minIndex + 1; $j < $count; $j++) {
            if ($min > $arr[$j]) { //假定的最小值大于后面的值,重置最小值
                $min = $arr[$j];
                $minIndex = $j;
            }
        }
        if ($minIndex != 2) {
            $arr[$minIndex] = $arr[2];//假定的最小元素不是最小元素,那么把后面的最小元素和假定的最小元素做交換
            $arr[2] = $min;//元素下標(biāo)交換
        }
        var_dump($arr);
        return $arr;
    }
    public static function sortSelect(array $arr) :array
    {
        if (!is_array($arr)) {
            return ['message' => '$arr不是一個(gè)數(shù)組'];
        }
        $count = count($arr);
        if ($count <= 1) {
            return $arr;
        }
        for ($i = 0; $i < $count - 1; $i++) {
            $minIndex = $i;
            $min = $arr[$i];
            for ($j = $i + 1; $j < $count; $j++) {
                if ($min > $arr[$j]) {//選擇的假定最小元素大于后面的元素
                    $min = $arr[$j];//把后面的最小元素賦值給假定的最小元素
                    $minIndex = $j;//把后面最小元素的坐標(biāo)賦值給假定的最小元素
                }
            }
            if ($minIndex != $i) {//如果在這個(gè)位置,一開始的假定最小元素的坐標(biāo)被替換了,說明假定最小元素不是最小元素,那么發(fā)生交換
                $arr[$minIndex] = $arr[$i];//交換最小元素,把最小元素和假定元素做交換
                $arr[$i] = $min;
            }
        }
        return $arr;
    }
}
$arr = [3, 1, 15, 5, 20];
var_dump(SelectSort::sortSelect($arr));

以上就是PHP中選擇排序的應(yīng)用詳細(xì)內(nèi)容,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊,感謝各位的閱讀。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站標(biāo)題:PHP中選擇排序的應(yīng)用-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://weahome.cn/article/djesjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部