
1. 알고리즘이란
알고리즘이란 절차를 자세하게 설명하는 것을 말한다. 절차는 대부분 함수로 표현한다.
2. 버블 정렬이란
서로 인접한 두 원소를 검사해서 정렬하는 알고리즘이다. 인접한 2개의 값(레코드)를 비교하여 크기가 순서대로 되어있지 않으면 서로 교환(스왑)한다.
ex) 5, 8, 2, 4, 3
1회전 (4바퀴)
- 5, 8 비교 → 변화없음
- 8, 2 비교 → 5,2,8,4,3
- 8, 4 비교 → 5,2,4,8,3
- 8, 3 비교 → 5,2,4,3,8
- 1회전의 변화 수는 n-1
가장 큰 수는 맨 뒤로 이동한다.
5, 2, 4, 3, 8
2회전 (3바퀴)
- 5, 2 비교 → 2,5,4,3,8
- 5, 4 비교 → 2,4,5,3,8
- 5, 3 비교 → 2,4,3,5,8
2, 4, 3, 5, 8
3회전 (2바퀴)
- 2, 4 비교 → 변화없음
- 4, 3 비교 → 2,3,4,5,8
3. 예시
package ex03;
public class BubbleEx01 {
static void bubble(int[] arr) {
final int N = arr.length;
int temp;
for (int loop = 1; loop < N; loop++) {
for (int i = 0; i < N - loop; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
// 출력코드
for (int i = 0; i < N; i++) {
System.out.print(arr[i] + " ");
}
}
public static void main(String[] args) {
int[] arr = {5, 8, 2, 4, 3};
BubbleEx01.bubble(arr);
System.out.println();
int[] arr2 = {5, 8, 2, 4, 3, 10, 500, 7, 6};
BubbleEx01.bubble(arr2);
}
}
출력 결과

- 정렬을 하는 이유
2진 검색으로 해당하지 않는 데이터는 버리며 검색할 수 있기 때문에
검색을 매우 빨리 할 수 있다.
데이터를 버리며 검색하기 때문에 로그는 천천히 올라간다.
Share article