Правила[Одномерные массивы]28. Дана последовательность действительных чисел a1 ≤ a2 ≤ ... ≤ аn. Вставить действительное число b в нее так, чтобы последовательность осталась неубывающей.
public static int[] addValue(int[] array, int value) {
int index = 0;
// Бросаем исключение, если массив нулевой длины
if (array.length == 0) {
throw new IllegalArgumentException("Это не возрастающий массив!");
}
// Если значение больше последнго в массиве, то просто вставляем его в конец
if (value > array[array.length - 1]) {
array = Arrays.copyOf(array, array.length + 1);
array[array.length - 1] = value;
return array;
}
// Находим индекс, куда нужно вставить элемент!
for (int i = 0; i < array.length; i++) {
if (value >= array[i] && value < array[i + 1]) {
index = i + 1;
break;
}
}
// Сдвигаем все вправо относительно index, куда затем вставляем значение
array = Arrays.copyOf(array, array.length + 1);
System.arraycopy(array, index, array, index + 1, array.length - 1 - index);
array[index] = value;
return array;
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ