我正在研究 php 的冒泡排序策略,您可以在此处查看代码,在主循环中,有两个条件必须为真,因此循环将运行,我知道该变量是因为我们不希望我们的循环运行,直到即使数组已经排序,它的最大迭代也是如此,但我不明白为什么我们需要检查我们是否已经进入最大迭代?为什么我们不能只检查变量(我的假设是我们可以在变量处遇到一些问题并且我们不想要一个永恒的循环)。无论如何我不确定,如果有人能告诉我为什么我们不需要只检查主循环中的变量,我将非常感激,谢谢大家,祝你有美好的一天。
function sort(array &$vec)
{
$sorted = false;
$size = sizeof($vec);
for($i=0; $i<=$size-2 && !$sorted; $i++)
{
$maybeSorted = true;
$from = 0;
$till = $size-1-$i;
for($j=$from; $j<$till; $j++)
{
if($vec[$j]>$vec[$j+1])
{
$maybeSorted = false;
$temp = $vec[$j];
$vec[$j] = $vec[$j+1];
$vec[$j+1] = $temp;
}
}
if($maybeSorted)
{
$sorted = true;
}
}
}