我想知道我还可以如何优化气泡排序,以便忽略已排序的元素,即使在第一遍之后。优化气泡排序(Java)
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;
}
}
谢谢你的时间!
你怎么能知道他们已经排序? – Pol0nium 2013-04-24 14:50:26
你指的是is_sorted?这只是一个标志 – kent 2013-04-24 14:53:05
@ Pol0nium:因为人类看到了这一点。问题是如何使算法看到 – 2013-04-24 14:53:14