java怎么把两个从小到大排序的一维数组合并成一个从小到大排序的一维数组 求代码和详细解释 万分感谢

如题所述

public static void main(String[]args)
{
//创建数组
String[] a = { "0", "3", "2", "1" };
String[] b = { "8", "7", "6", "5", "4" };
String[] c = new String[a.length + b.length];
//复制数据
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, a.length, b.length);
//利用 Arrays排序
Arrays.sort(c);
//遍历展示数据
for(String _var : c)
{
System.out.println(_var);
}
}

基本思路就是这样..先合并 然后排序 然后输出..
希望能够帮助到你.. 合并的时候还有其他的方法..有兴趣你可以去了解下 ~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-10
@Test
public void testJoinArr1(){
int[] arr1 = {1, 2, 3}; // 已经排序好的第一个数组
int[] arr2 = {10, 20, 30, 40}; // 已经排序好的第二个数组
int[] newArr = new int[arr1.length + arr2.length]; // 创建一个新的数组来容纳合并的值
System.arraycopy(arr1, 0, newArr, 0, arr1.length); // JDK提供的方法, 详细说明可以看文档
System.arraycopy(arr2, 0, newArr, arr1.length, arr2.length);
Arrays.sort(newArr); // JDK提供的方法, 详细说明可以看文档

for (int i : newArr) {
System.out.print(i + ",\t");
}
}
如果你是学习编程的话, 建议自己写代码来实现.
第2个回答  2012-11-05
像这类题可以到程序设计里去提问,这样得到的帮助会更多。基本上任何编程语言都涉及关于数组的操作。不用非得到java相关。很多C、C++编程高手也未必关注java。
------------------------------------------------------------------------------------------------------
我给你一点我的想法:
首先,有两个指针分别指向两个数组的首元素,由于两个数组已经排序了,用一个数组A指针指向的值去跟另一数组B指针指向的值比较,比它小数组A指针就向后移动,B指针不动,继续比较。若B指针指向的值小,则A指针不动。B指针后移,继续比较。然后,这期间要注意比较的元素都转存到新的数组里。

希望能够帮助你!~代码应该网上有。最好能够自己实现以下这样收获更大。
第3个回答  2012-11-05
public int[] fuck(int[] nums1, int[] nums2) {
int[] nums = new int[nums1.length + nums2.length];
for (int i = 0; i < nums.length; i++) {
if (i < nums1.length) {
nums[i] = nums1[i];
} else {
nums[i] = nums2[i - nums1.length];
}
}

for (int i = 0; i < nums.length - 1; i++) {
for (int j = 0; j < nums.length - i - 1; j++) {
if (nums[j] > nums[j + 1]) {
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
return nums;
}
第4个回答  2012-11-05
int a[],b[];
....
....
上面是初始化
int[] result=new int[a.size()+b.size()];
System.arraycopy(a,0,result,0,a.size());
System.arraycopy(b,0,result,a.size(),b.size());
Arrays.sort(result);
相似回答