让我困惑的作业练习:
我们有一个n随机顺序的整数数组,练习要求我们使用下面指定的方法对它们进行排序。
首先,我们按照两个规则将整数放在行中:
- 仅当 a < b 时,我们才将整数 a 放在整数 b 之上
- 否则我们将整数 a 放在新行中
这两条规则用于对数组进行排序。当我们完成应用规则时,我们选择较小的可见整数,一次一个,直到它们被排序。
该练习需要使用 3 个数组:
- data[1...n]其中包含要排序的数字
- column[1...n,1...]
- number[1..n]表示每列的整数总数
例如,如果
data = [3,2,12,8]
那么column将是:
column[1,1] = 3
column[2,1] = 2
column[1,2] = 12
column[2,2] = 8 
并且number会是[2,2]
我正在尝试制作一个循环(请记住,英语中的伪代码可能与我用自然语言学习的伪代码不同)
for counter=1 to n 
    number[counter]:=0;
end for
for counter=1 to n
    a := 1;
    b := 1;
    if data[counter] < column[a,number[b]] or number[b]=0 then
        number[b] := number[b] + 1;
        column[a,number[b]] := data[counter];
    else 
        a:=a+1;
        b:=b+1;
    end if
end for
但是这段代码有很多错误。有人可以尝试解释我的逻辑哪里错了吗?