
該算法與冒泡排序的不同之處在于,它在每次遍歷列表時(shí)都在兩個(gè)方向進(jìn)行排序。這種排序算法實(shí)際上比冒泡排序更難以實(shí)現(xiàn),并且解決了冒泡排序中的海龜問(wèn)題。它只提供了微小的性能改進(jìn),并沒(méi)有改善漸近性能; 就像泡沫一樣,雖然它在教育中有用,但它沒(méi)有實(shí)際意義。
雞尾酒排序可視化動(dòng)圖示例如下:

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 原始數(shù)組:/n echo implode( , ,$test_array );echo /n排序后數(shù)組/n: echo implode( , ,cocktailSort($test_array)). PHP_EOL;輸出:
原始數(shù)組: 3, 0, 2, 5, -1, 4, 1排序后數(shù)組 :-1, 0, 1, 2, 3, 4, 5
本篇文章就是關(guān)于PHP雞尾酒(Cocktail)排序算法的實(shí)現(xiàn)方法介紹,希望對(duì)需要的朋友有所幫助!
以上就是PHP雞尾酒(Cocktail)排序算法的實(shí)現(xiàn)(代碼示例)的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選