您好,我正在使用 php 学习算法,我想将此伪代码转换为 php,
for i = 1 to n − 1
minval = A[i]
minindex = i
for j = i to n
if (A[j] < minval)
minval = A[j]
minindex = j
exchange A[i] and A[minindex]
这是php中对应的代码
$A = array(1, 4, 2, 3, 70, 10, 7 );
$n = sizeof($A);
for ($i = 0; $i == $n - 1; $i++){
for ($j = $i + 1; $j == $n; $j++){
if ($A[$i] > $A[$j]){
$temp = $A[$j];
$A[$j] = $A[$i];
$A[$i] = $temp;
}
}
}
print_r($A);
print_r 按原始顺序输出数组,为什么我的算法不重新排序数组?
最佳答案
你应该检查你的 for
循环:
for ($i = 0; $i == $n - 1; $i++){
for ($j = $i + 1; $j == $n; $j++){
应该是
for ($i = 0; $i < $n - 1; $i++){
for ($j = $i + 1; $j < $n; $j++){
因为 for
中的第二个参数是继续循环的要求。
关于php - 在 php 中对数字进行排序,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43410886/