【发布时间】:2013-04-18 04:29:37
【问题描述】:
我想知道我还能如何优化冒泡排序,以便它忽略已经排序的元素,即使在第一次通过之后也是如此。
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;
}
}
【问题讨论】:
标签: java optimization recursion bubble-sort