PHP插入排序

插入排序其实和希尔排序一模一样 , 记得希尔排序中开始定义了一个 $d ( 分成 $l/$d 组 ) 吗 ? 插入排序只需要将那个 $d 改为 1 就可以 , 意思就是 , 不分组 , 只有一组 .

代码 :

function insertSort($a) {
  $l = count($a);
  for($i=1; $i<$l; $i++) {
    $t = $a[$i];
    $j = $i-1;
    while($j>=0 && $a[$j]>$t) {
      $a[$j+1] = $a[$j];
      $j--;
    }
    $a[$j+1] = $t;
  }
  return $a;
}


用法:

echo(implode(",", insertSort($a)));// $a 为一个无序数组 , 例如 $a = range(1,100);shuffle($a);


额 , 和希尔排序对着看看 ? 是不是仅仅是把它那个 $d = floor($l/2); 改为 $d=1 而已 ?


本文出自 “一个纠结的PHP程序员” 博客,请务必保留此出处http://johnsylm.blog.51cto.com/1480623/1429331

PHP插入排序,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。