首页 > 解决方案 > 为二维数组和多列实现合并排序

问题描述

最近我发现了一个有竞争力的编程问题,需要为 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;
            }
        }
    }

这只是一个简单的代码来演示这个想法

如果你有什么特别的想法。请给出答案。提前致谢。

标签: c++algorithmmergesort

解决方案


推荐阅读