Я пытаюсь изучить Insertion Sort на Java, но у меня есть проблема. Я изучил сортировку в порядке возрастания. Теперь мне нужно сделать это в порядке убывания, но я должен начать сортировку массива справа налево.Вставка Сортировка справа налево
public class Sorting {
public static void sort(Comparable[] a) {
int N = a.length;
for (int i = 1; i < N; i++) {
for (int j = i; j > 0 && less(a[j], a[j - 1]); j--)
swap(a, j, j - 1);
}
}
private static void swap(Comparable[] a, int i, int j) {
Comparable t = a[i];
a[i] = a[j];
a[j] = t;
}
private static boolean less(Comparable v, Comparable w) {
return v.compareTo(w) < 0;
}
}
Код, который находится выше сортирует массив слева направо в порядке возрастания (1,2,3,4, ..).
Мне нужно изменить его в порядке убывания, но сортировка справа налево (5,4,3,2 ..). изменить код и попытался это:
public static void sort(Comparable[] a) {
int N = a.length;
for (int i = N-1; i>=0; i--) {
for (int j = i; j >= 1 && less(a[j-1], a[j]); j++)
swap(a, j, j-1);
}
}
Я изменил метод сортировки несколько раз, но я получил ошибку ..
Я хочу задать еще одну вещь. Что делает «утверждать»? – Thec0der
assert предназначен только для целей тестирования, потребляет некоторый логический термин, и если он ложный, программа вылетает из строя. Он используется только, когда в потоке программы должно выполняться какое-то условие, чтобы проверить, что состояние вашей программы в правильном состоянии. – fairtrax