Corman插入排序在php不工作


Corman insertion sort in php not working

算法

for k from 2 to n
  key = a[k]
  j = k - 1
  while (j > 0 and key > a[j])
    a[j + 1] = a[j]
    j = j - 1
  end while
  a[j + 1] = key
end for
我代码:

function insertionSort(array $array) {
    $length=count($array);
    for ($i=1;$i<$length;$i++) {
        $element=$array[$i];
        $j=$i-1;
        while($j>0 && $array[$j]>$element) {
            $array[$j+1]=$array[$j];
            $j=$j-1;
            }
        $array[$j+1]=$element;
        }
    return $array;
}
输出:

Array (
    [0] => 5
    [1] => 6
    [2] => 4
    [3] => 3
    [4] => 2
    [5] => 1
)

我在这里做错了什么,为什么第一个元素没有排序?

嘿,请检查你的算法和PHP代码中的while循环的第二个条件,它可能会帮助你…