91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何實現PHP雞尾酒排序算法

發布時間:2020-07-21 13:40:23 來源:億速云 閱讀:137 作者:Leah 欄目:編程語言

如何實現PHP雞尾酒排序算法?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

  雞尾酒排序也稱為雙向冒泡排序(bidirectional bubble sort)、搖曳排序(shaker sort)、波紋排序( ripple sort)、洗牌排序(shuffle sort)或穿梭排序( shuttle sort )是冒泡排序的一種變體,它既是一種穩定的排序算法,也是一種比較排序。

如何實現PHP雞尾酒排序算法

該算法與冒泡排序的不同之處在于,它在每次遍歷列表時都在兩個方向進行排序。這種排序算法實際上比冒泡排序更難以實現,并且解決了冒泡排序中的海龜問題。它只提供了微小的性能改進,并沒有改善漸近性能; 就像泡沫一樣,雖然它在教育中有用,但它沒有實際意義。

雞尾酒排序可視化動圖示例如下:

如何實現PHP雞尾酒排序算法

PHP雞尾酒排序代碼示例如下:

<?php
function cocktailSort($my_array)
{
    if (is_string($my_array))
        $my_array = str_split(preg_replace('/\s+/','',$my_array));

    do{
        $swapped = false;
        for($i=0;$i<count($my_array);$i++){
            if(isset($my_array[$i+1])){
                if($my_array[$i] > $my_array[$i+1]){
                    list($my_array[$i], $my_array[$i+1]) = array($my_array[$i+1], $my_array[$i]);
                    $swapped = true;
                }
            }
        }

        if ($swapped == false) break;

        $swapped = false;
        for($i=count($my_array)-1;$i>=0;$i--){
            if(isset($my_array[$i-1])){
                if($my_array[$i] < $my_array[$i-1]) {
                    list($my_array[$i],$my_array[$i-1]) = array($my_array[$i-1],$my_array[$i]);
                    $swapped = true;
                }
            }
        }
    }while($swapped);

    return $my_array;
}
$test_array = array(3, 0, 2, 5, -1, 4, 1);
echo "原始數組:\n";
echo implode(', ',$test_array );
echo "\n排序后數組\n:";
echo implode(', ',cocktailSort($test_array)). PHP_EOL;

輸出:

原始數組: 3, 0, 2, 5, -1, 4, 1
排序后數組 :-1, 0, 1, 2, 3, 4, 5

看完上述內容,你們掌握如何實現PHP雞尾酒排序算法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

庄浪县| 柳林县| 滨州市| 黄大仙区| 呼伦贝尔市| 安丘市| 牙克石市| 磴口县| 南投县| 平谷区| 麟游县| 新竹县| 鄢陵县| 深州市| 桦甸市| 莲花县| 共和县| 松滋市| 紫云| 德州市| 黎平县| 贵南县| 穆棱市| 衡南县| 晋江市| 佳木斯市| 沧州市| 怀宁县| 屯留县| 宁河县| 白沙| 齐齐哈尔市| 牙克石市| 磐石市| 勐海县| 万山特区| 阿鲁科尔沁旗| 安达市| 澄城县| 上虞市| 隆回县|