以级联方式迭代二维数组以排序成一维数组

时间:2014-09-23 18:47:48

标签: arrays sorting

所以我想说我有一个二维数组:

1A  2A  3A  4A
1B  2B  3B  4B
1C  2C  3C  4C
1D  2D  3D  4D
1E  2E  3E  4E

我想迭代这个2-d数组,并创建一个新的1维数组,如下所示:

1A, 2A, 1B, 3A, 2B, 1C, etc...

更好地想象它,

1A 

2A
1B

3A
2B
1C

4A
3B
2C
1D

4B
3C
2D
1E

4C
3D
2E

4D
3E

4E

有人为此提供了很好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

这只是一些伪代码,但似乎有效:

X=0;
y=1;
out = array[0][0]
while ( (X!=MAX) && (y!=MAX) ) // MAX = maximum size of the array and assumes a square array //
{
    yy=y;
    xx=x;
    while ( (X!yy) && (y!=xx) )
    {
        out = array[xx][yy]
        XX = XX + 1
        yy = YY + 1
    }
    out = array[xx][yy]
    if (y != MAX)
        y = y + 1
    else
        x = x + 1
}
out = array[MAX][MAX]