创建Cocktail Shake Sort时PHP未定义的偏移量

时间:2018-01-09 07:36:21

标签: php algorithm sorting undefined offset

所以我尝试在PHP中重现排序算法“Cocktail Shaker Sort”,但由于我收到错误而无法继续:

  

“未定义的偏移量”,然后是一些随机数。

我仍然很擅长使用PHP进行编程,如果有人可以帮助我,我的代码如下!谢谢你,祝你有愉快的一天!

neo4j/databases

1 个答案:

答案 0 :(得分:0)

您还需要一个循环来对所有元素进行排序:

function cocktailSorting(&$a) {
    $n = count($a);
    $left = 0;
    $right = $n - 1;
    do {
        for ($i = $left; $i < $right; $i++) {
            if ($a[$i] > $a[$i + 1]) {
                list($a[$i], $a[$i + 1]) = array($a[$i + 1], $a[$i]);
            }
        }
        $right -= 1;
        for ($i = $right; $i > $left; $i--) {
            if ($a[$i] < $a[$i - 1]) {
                list($a[$i], $a[$i - 1]) = array($a[$i - 1], $a[$i]);
            }
        }
        $left += 1;
    } while ($left <= $right);
}


    global $array;
    global $arraySorted;
    $intMin = 0;
    $intMax = 50;
    $maxLength = 69;
    $array = array();
    for($i=0; $i < $maxLength; $i++)
    {   
        $array[$i] = mt_rand($intMin, $intMax);             
        echo $array[$i]." ";
    }
cocktailSorting($array);
echo var_dump($array);