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