バブルソートを最適化できる方法を知りたいので、最初のパスの後であってもソートされている要素を見落としてしまいます。最適化されたバブルソート(Java)
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;
}
}
ありがとうございます!
it doesn't do a lot with larger arrays.はどのようにあなたは彼らがすでにソートされている知ることができ、以前の回答で言いましたか? – Pol0nium
is_sortedを参照していますか?それはちょうどフラグです – kent
@ Pol0nium:人間がこれを見ているからです。問題は、アルゴリズムがそれを参照するようにする方法です –