我获得了一个2D数组,其中每一行都是单独排序的。我需要按排序顺序打印整个矩阵(升序)。任何人都可以告诉如何有效地做它和它的时间复杂性。如果您可以编码,请粘贴您的C ++代码。
答案 0 :(得分: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;
}