在PHP中排序数字,

时间:2017-04-14 11:46:02

标签: php algorithm sorting

嗨我正在使用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输出数组作为其原始顺序,为什么我的算法会重新排序数组?

1 个答案:

答案 0 :(得分:3)

您应该检查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中的第二个参数是继续循环的要求。