버블 정렬은(Bubble Sort) 두 인접한 원소를 순차적으로 정렬하는 방법이고 2가지 순서가 있습니다.
1. 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를 ... N-1번째 원소와 N번째 원소를 비교 합니다.
2. 1회전이 끝나면 가장 큰 원소가 맨 마지막으로 이동하기 때문에 다음 회전에서의 마지막은 N-2 원소와 N-1 원소가 됩니다.
아래는 위의 순서에 맞게 실행한 예제입니다.
- 배열에 저장되는 값은 [3, 6, 0, 9, 1] 입니다.
Sequence | Table | Values | Result |
1 | [3, 6, 0, 9, 1] | 6<->0 | [3, 0, 6, 9, 1] |
1 | [3, 0, 6, 9, 1] | 9<->1 | [3, 0, 6, 1, 9] |
2 | [3, 0, 6, 1, 9] | 3<->0 | [0, 3, 6, 1, 9] |
3 | [0, 3, 6, 1, 9] | 6<->1 | [0, 3, 1, 6, 9] |
4 | [0, 3, 1, 6, 9] | 3<->1 | [0, 1, 3, 6, 9] |
아래는 선택 정렬을 구현한 자바 예제입니다.
package algorithm;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] a = { 3, 6, 0, 9, 1 };
int[] sorted_a = bubbleSort(a);
System.out.print(Arrays.toString(a));
}
public static int[] bubbleSort(int[] a) {
int i, j, temp;
for (i = a.length - 1; i > 0; i--) {
for (j = 0; j < i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
return a;
}
}
'Programming > Algorithm' 카테고리의 다른 글
[자바/알고리즘]알고리즘 선택정렬 (0) | 2020.08.24 |
---|---|
[자바/알고리즘]정보처리기사 Section012 - 소인수 분해하기 (0) | 2016.02.11 |
[자바/알고리즘]정보처리기사 Section011 - 약수 구하기 (0) | 2016.02.11 |
[자바/알고리즘]정보처리기사 Section008 - 소수의 합 구하기 (0) | 2016.02.11 |
[자바/알고리즘]정보처리기사 Section007 - 소수 판별 (0) | 2016.02.11 |