优化的气泡排序
2022-09-03 05:13:24
我想知道如何优化气泡排序,以便它忽略已经排序的元素,即使在第一次传递之后也是如此。
Eg. [4, 2, 3, 1, 5, 6] --> [2, 3, 1, **4, 5, 6**]
我们观察到已经按排序顺序排列,我如何修改我的代码,以便它在下一个传递中忽略这3个元素?这意味着排序会更有效率?您是否建议使用递归方法?[4,5,6]
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;
}
}