将一个二维数组直接拆分成一维数组:
多路归并算法
将二维数组视为k个一维数组,每次取k个数组里面第一个最小的,然后从其中k(有可能小于k)个数选择最小的,并将指向最小元素的那个数据段指针后移
直到k个数组都遍历完毕。
暴力解法
public class Main{
public static void main(String[] args) {
int[][] m = {
{
1, 23 }, {
2, 3, 4, 5 } };
int[] n;
int len = 0;
// 计算一维数组长度
for (int[] element : m) {
len += element.length;
}
// 复制元素
n = new int[len];
int index = 0;
for (int[] element : m) {
for (int element2 : element) {
n[index++] = element2;
}
}
Arrays.sort(n);
for (int i : n) {
System.out.print(i + ",");