我想知道我還可以如何優化氣泡排序,以便忽略已排序的元素,即使在第一遍之後。優化氣泡排序(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