0
我正在研究关于泡沫排序策略在PHP中,你可以看到代码Here, 在主循环,有两个条件需要是真的,所以循环将运行,我知道变量是becouse我们不希望我们的循环,直到连阵列已经排序它的最大迭代运行,但我不明白为什么我们需要检查,看看是否我们已经钻进了最大迭代?为什么不能我们只是检查变量(我的假设是,我们可以有一些在变量的问题,我们不希望一个永恒的循环)。任何方式我不知道,我会很感激,如果有一个人能告诉我,为什么我们不需要在主循环只检查变量,谢谢大家,有一个愉快的一天。泡沫,排序,策略
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;
}
}
}
谢谢你的回答,但我内心深处的PHP,我已经研究它在PHP的长期研究OOP,你可以请高我,为什么我不需要只检查$存储的变量... – Blanktext
你可以也重新实现这个代码在PHP中;)只有学习功能的算法。 你需要检查的唯一的事情是,如果没有什么在最后一轮切换,因为当你达到最大运行的,这也将是如此。如果您同时选中,您将始终拥有最多的运行次数。 – tbraun89
Mabye我不明白你,这里是我所知道的:我必须条件1是最大循环,另一个条件是变量,我知道有变量是检查我们是否在最终数组之前得到最终数组循环,但我不明白为什么我们既需要是真实的最大循环和变量,如果你能请帮助我理解为什么我们需要最大循环是真实的。 – Blanktext