c++ - 为二维数组和多列实现合并排序
问题描述
最近我发现了一个有竞争力的编程问题,需要为 2d 数组 arr[i][j] 添加归并排序。
行数和列数 i & j 从用户输入中获取。
如果您输入了较低的行数(假设 I && J < 100),这不是一个好的解决方案。但它得到一个大整数。插入排序不是那么好。所以我希望添加合并排序而不是那个。特点是还需要整理两列
具有两列的二维数组。我怎样才能更有效地实施它?当行越来越高时,交换两个值的成本很高。有没有办法轻松实现它。
这是我的插入排序实现。
insertionSortA(Cq,globalC);
for(int i =0;i<globalC-1;i++){
for(int j =0;j<globalC-i-1;j++){
if(Cq[j][1]>Cq[j+1][1]){
// swapping
my_temp = Cq[j][1];
Cq[j][1] = Cq[j+1][1];
Cq[j+1][1] = my_temp;
my_temp2 = Cq[j][0];
Cq[j][0] = Cq[j+1][0];
Cq[j+1][0] = my_temp2;
}
}
}
这只是一个简单的代码来演示这个想法
如果你有什么特别的想法。请给出答案。提前致谢。