所以我尝试在PHP中重现排序算法“Cocktail Shaker Sort”,但由于我收到错误而无法继续:
“未定义的偏移量”,然后是一些随机数。
我仍然很擅长使用PHP进行编程,如果有人可以帮助我,我的代码如下!谢谢你,祝你有愉快的一天!
neo4j/databases
答案 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);