两个java数组比大小排序

举个例子,我现在有两个集合数组 A ={32,43,28,3,67,20, 40,0, 59 } B = {3 ,45, 18 ,83 ,30 ,28 ,40,56 ,25} 我要对两个集合数组的大小进行一 一的比较,最后整合到一个大集合数组C中,数字大的排的前面,数字小的在后面,如果AB有数字相同的,那将A组里面的数字排到B前面。求大神帮忙怎么用循环遍历来写这一段代码。

你的数组等长,那么遍历取同样位置的数据比较大小,放入合并后的数组,该数组长度是两个数组长度之和

直接把两个数组连接起来用任何一种稳定的排序算法排序。(假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法)

在所有稳定的排序算法中,最简单的是冒泡排序。
http://blog.csdn.net/yyywyr/article/details/8075433
http://blog.163.com/yurong_1987@126/blog/static/475178632008615054342/

合并两个数组,然后用冒泡排序就可以了

使用归并的思想。将两个数组排序,然后再 合并到一起。

 public static int[] mergeSort(int[] A,int[] B){
        int[] tmp = new int[A.length + B.length];
        //将A,B分别排序
        Arrays.sort(A);
        Arrays.sort(B);
        //合并到一个数组里面
        int index = 0;//tmp的游标
        int i = 0;//A的游标
        int j = 0;//B的游标
        while(i < A.length && j < B.length){
            if(A[i] <= B[j]){
                tmp[index++] = A[i++];
            }else{
                tmp[index++] = B[j++];
            }
        }
        //如果A中还有剩余元素,直接复制到tmp中
        while(i < A.length){
            tmp[index++] = A[i++];
        }
        //如果B中还有剩余元素,直接复制到tmp中
        while(j < B.length){
            tmp[index++] = B[j++];
        }
        return tmp;
    }

上面写成了从小到大排序了,不好意思

 public static int[] mergeSort(int[] A,int[] B){
        int[] tmp = new int[A.length + B.length];
        //将A,B分别排序
        Arrays.sort(A);
        Arrays.sort(B);
        //合并到一个数组里面
        int index = 0;//tmp的游标
        int i = A.length - 1;//A的游标
        int j = B.length - 1;//B的游标
        while(i >= 0 && j >= 0){
            if(A[i] >= B[j]){
                tmp[index++] = A[i--];
            }else{
                tmp[index++] = B[j--];
            }
        }
        while(i >= 0){
            tmp[index++] = A[i--];
        }
        while(j >= 0){
            tmp[index++] = B[j--];
        }
        return tmp;
    }

如果AB有数字相同的,那将A组里面的数字排到B前面
这个要求真是奇葩,数字都相同的,你怎么区分他是哪个数组的?整合到一个数组中,又不存在其他能够区分的标志位

话说我也挺感兴趣这个相同数字的处理的,如何区分嗯。

一定要先比大小再整合到一起吗?能不能先整合到一个数组里,然后再用Array.sort()。整合到一起:创建一个新数组,前x个等于A组,后x个等于B组。图片说明