我决定为包含排序算法和搜索算法的语言创建帮助文件。我从C开始,想在PHP中创建相邻的。但是我传递的数组没有被排序。 为什么呢?
<?php
function BubbleSort($array, $length)
{
for($i = 0; $i < $length - 1; ++$i)
{
for($j = 0; $j < $length - $i - 1; ++$j)
{
if($array[$j] > $array[j + 1])
{
$tmp = $array[$j];
$array[j] = $array[j + 1];
$array[j + 1] = $tmp;
}
}
}
}
$array = [5,2,3,1,2];
$size = 5;
print "Array is now: ";
for($i = 0; $i < $size; $i++)
{
print "{$array[$i]} ";
}
print "\n";
BubbleSort($array, $size);
for($i = 0; $i < $size; $i++)
{
print "{$array[$i]} ";
}
print "\n";
?>
答案 0 :(得分:1)
您没有通过引用传递数组,因此您的函数必须返回数组,然后您必须将其分配回原始数组。
如果没有语法错误,我真的没有看。
答案 1 :(得分:1)
您有语法错误
更改
$array[j + 1]
到
$array[$j + 1]
因为php是松散类型和其他原因导致j被视为常量j,并且警告级别类似于~warning:未知常量j假设'j',将其视为文字字符串' j'然后将'j'添加到1,或类似的东西,这只是我的头顶。