該算法與冒泡排序的不同之處在于,它在每次遍歷列表時都在兩個方向進行排序。這種排序算法實際上比冒泡排序更難以實現,并且解決了冒泡排序中的海龜問題。它只提供了微小的性能改進,并沒有改善漸近性能; 就像泡沫一樣,雖然它在教育中有用,但它沒有實際意義。
雞尾酒排序可視化動圖示例如下:
PHP雞尾酒排序代碼示例如下:
?phpfunction cocktailSort($my_array) if (is_string($my_array)) $my_array = str_split(preg_replace( //s+/ , ,$my_array)); $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 $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雞尾酒(Cocktail)排序算法的實現方法介紹,希望對需要的朋友有所幫助!
以上就是PHP雞尾酒(Cocktail)排序算法的實現(代碼示例)的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答