Java Array Sort addSorted(int[] array, int[] newValues)

Here you can find the source of addSorted(int[] array, int[] newValues)

Description

add Sorted

License

Open Source License

Declaration

public static int[] addSorted(int[] array, int[] newValues) 

Method Source Code


//package com.java2s;
/*// w  w w  .  ja  va 2 s.  c o  m
 * Copyright (c) 2011, the Dart project authors.
 * 
 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 * 
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

import java.util.Arrays;

public class Main {
    public static int[] addSorted(int[] array, int[] newValues) {
        if (newValues.length == 0) {
            return array;
        }

        int[] interim = new int[array.length + newValues.length];
        System.arraycopy(array, 0, interim, 0, array.length);
        System.arraycopy(newValues, 0, interim, array.length, newValues.length);
        Arrays.sort(interim);

        int count = 1;
        for (int i = 1; i < interim.length; i++) {
            if (interim[i] != interim[i - 1]) {
                ++count;
            }
        }

        if (count == interim.length) {
            return interim;
        }

        int[] result = new int[count];
        int index = 0;
        result[index++] = interim[0];
        for (int i = 1; i < interim.length; i++) {
            if (interim[i] != interim[i - 1]) {
                result[index++] = interim[i];
            }
        }
        if (index != count) {
            throw new AssertionError("addSorted internal error");
        }

        return result;
    }
}

Related

  1. addSortedUnique(T[] array, T object, int start)
  2. addToSortedIntArray(int[] a, int value)
  3. bitReversalSort(final short[] real)
  4. calculatePValueForDataPoint(double dataPoint, double[] sortedNullHypothesisSample)