我正在尝试制作一个模拟Best Fit内存分配算法的网络应用。我在尝试排序工作时遇到错误。
$bestfit = array();
for ($i = 0; $i < $_POST['holyhole']; $i++) {
for ($j = 0; $j < $_POST['holyhole']; $j++) {
if ($holecopy[$i] < $holecopy[$j]) {
$thresh = $holes[$i];
$holecopy[$i] = $holecopy[$j];
$holecopy[$j] = $thresh;
$hold = $bestfit[$i];
$bestfit[$i] = $bestfit[$j];
$bestfit[$j] = $hold;
}
}
}
$holecopy2 = $holecopy;
for ($i = 0; $i < $_POST['proc']; $i++) {
$flag = 0;
for ($j = 0; $j < $_POST['holyhole']; $j++) {
if ($proc[$i] < $holecopy[$j]) {
echo ($bestfit[$j] . " " . $holecopy[$j] . " " . $proc[$i]);
$holecopy[$j] = $holecopy[$j] - $proc[$i];
} else {
$flag++;
}
}
if ($flag > $_POST['holyhole']) {
echo "Wait: " . $proc[$i];
}
}
我在使用bestfit数组的行周围出现偏移误差。我无法理解为什么。请帮忙。谢谢!