【排序算法】php希尔排序算法源码

希尔排序,也称递减增量排序算法,因DL.Shell于1959年提出而得名,是最早突破二次时间屏障的排序算法,是插入排序的一种高速而稳定的改进版本。

希尔排序的时间复杂度与增量选取有关,至今未能给出算法的时间复杂度的下界。

原理演示图:

php希尔排序算法源码

PHP希尔排序算法实现源码:

  1. /**
  2.  * ShellSort
  3.  *
  4.  * @param array $container
  5.  * @return array
  6.  */
  7. function ShellSort(array $container)
  8. {
  9.     $count = count($container);
  10.     for ($increment = intval($count / 2); $increment > 0; $increment = intval($increment / 2)) {
  11.         for ($i = $increment$i < $count$i++) {
  12.             $temp = $container[$i];
  13.             for ($j = $i$j >= $increment$j -= $increment) {
  14.                 if ($temp < $container[$j - $increment]) {
  15.                     $container[$j] = $container[$j - $increment];
  16.                 } else {
  17.                     break;
  18.                 }
  19.             }
  20.             $container[$j] = $temp;
  21.         }
  22.     }
  23.     return $container;
  24. }

以上就是希尔排序用PHP实现的源码,相关图片引用了博客https://blog.csdn.net/sgn132/article/details/47279511。

如果大家发现在上述算法中有需要优化的地方,欢迎评论区留言。
 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!