Мне хотелось бы знать, как еще можно оптимизировать пузырьковую сортировку, чтобы она пропускала уже отсортированные элементы даже после первого прохода.
Eg. [4, 2, 3, 1, 5, 6] --> [2, 3, 1, **4, 5, 6**]
Мы видим, что [4,5,6] уже отсортированы. Как я могу изменить свой код, чтобы он пропускал эти 3 элемента на следующем проходе? Это означает, что сортировка будет более эффективной? Вы предлагаете рекурсивный метод?
public static void bubbleSort(int[] a) {
for (int i = 1; i < a.length; i++) {
boolean is_sorted = true;
for (int j = 0; j < a.length; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
is_sorted = false;
}
}
if (is_sorted) return;
}
}
Подробнее здесь: https://stackoverflow.com/questions/161 ... ubble-sort
Оптимизированная пузырьковая сортировка ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение