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,算法,插入排序,希尔排序)