一个循环合并两个有序数组

 int[] a = { 1, 3, 5, 7,7 };  
        int[] b = { 2, 4, 6, 8,10,12,13 };  
        int[] c = new int[a.length+b.length];  
        int ai = 0;  
        int bi = 0;  
        int ci = 0;  
        for (ci = 0; ci < a.length+b.length; ci++) {  
            //如果一个数组已经放完,直接将另外一个数组copy。  
            if(ai == a.length){  
                c[ci] = b[bi++];  
                continue;  
            }  
            if(bi == b.length){  
                c[ci] = a[ai++];  
                continue;  
            }  
            //选中最小的放到新数组中,而最小的就是各个数组的第一个。  
            if (a[ai] > b[bi]) {  
                c[ci] = b[bi];  
//              if(bi+1 < b.length){  
                    bi++;  
//              }  
            } else {  
                c[ci] = a[ai];  
//              if(ai+1 < a.length){  
                    ai ++;  
//              }  
            }  
        }  
        System.out.println(Arrays.toString(c));  

你可能感兴趣的:(一个循环合并两个有序数组)