时间:2021-07-01 10:21:17 帮助过:67人阅读
在冒泡排序中,当比较任何两个元素时,它们总是具有1的间隙。梳排序的基本思想是间隙可以远大于1。
PHP梳排序示意图如下:
代码示例如下:
<?php function combSort($my_array){ $gap = count($my_array); $swap = true; while ($gap > 1 || $swap){ if($gap > 1) $gap /= 1.25; $swap = false; $i = 0; while($i+$gap < count($my_array)){ if($my_array[$i] > $my_array[$i+$gap]){ list($my_array[$i], $my_array[$i+$gap]) = array($my_array[$i+$gap],$my_array[$i]); $swap = true; } $i++; } } return $my_array; } $test_array = array(3, 0, 2, 5, -1, 4, 1); echo "原始数组 :\n"; echo implode(', ',$test_array ); echo "\n排序后数组\n:"; echo implode(', ',combSort($test_array)). PHP_EOL;
输出:
原始数组 : 3, 0, 2, 5, -1, 4, 1 排序后数组 :-1, 0, 1, 2, 3, 4, 5
本篇文章就是关于PHP梳排序(Comb Sort)算法的实现方法介绍,希望对需要的朋友有所帮助!
以上就是PHP梳排序(Comb Sort)算法的实现的详细内容,更多请关注Gxl网其它相关文章!