0

我得到一个二维数字数组,其每一行都单独排序。我需要按排序顺序(升序)打印整个矩阵。谁能告诉如何有效地做到这一点及其时间复杂性。如果您可以编码,请粘贴您的 C++ 代码。

4

1 回答 1

0

此代码可能会有所帮助!

unsigned char arr[columnsize][rowsize];

unsigned char out[columnsize*rowsize];

for(unsigned int i=0; i<columnsize*rowsize; i++){
    char buffer=1;
    bool brk=false;
    for(unsigned int y=0; y<rowsize; y++){
        for(unsigned int x=0; x<columnsize; x++){
            if(arr[x][y] <= buffer){
                buffer = arr[x][y];
                arr[x][y] = 0;
                brk = true;
            }
            if(brk) break;
        }
        if(brk) break;
    }
    out[i] = buffer;
}
于 2013-07-05T09:55:25.930 回答