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