버블 정렬을 최적화 할 수있는 방법을 알고 싶습니다. 이미 정렬 된 요소를 간과 할 수 없으므로 첫 번째 전달 후에도 마찬가지입니다.최적화 된 버블 정렬 (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 : 인간이 이것을보고 있기 때문입니다. 문제는 알고리즘이 어떻게 보이는지를 확인하는 것입니다. –