Bubble Sort
- 이름 그대로 방울이 터지는 것 처럼 연쇄적으로 비교하여 정렬
- 상당히 간단하면서, 효율은 그렇게 좋지 못 한 정렬
- 1956년 논문 “Electronic Computer Systems” “Sort in” 에 존재 기재되어 있다 한다.
- 최초 시작부터 최종까지 앞뒤를 비교하면서 모든 값을 비교하며 정렬
시간 복잡도
간단 코드
# Java
static void bubbleSort(int arr[], int n)
{
int i, j, temp;
boolean swapped; // swap이 발생하지 않으면 정렬이 끝났다 판단 후 종료
for (i = 0; i < n - 1; i++) {
swapped = false;
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
if (swapped == false)
break;
}
}
간단 예시
빨간색 이 파란색이랑 와 비교하여 정렬
시작 | |||||
---|---|---|---|---|---|
10 | 9 | 6 | 3 | 6 | 1 |
loop01 | |||||
9 | 10 | 6 | 3 | 6 | 1 |
9 | 6 | 10 | 3 | 6 | 1 |
9 | 6 | 3 | 10 | 6 | 1 |
9 | 6 | 3 | 6 | 10 | 1 |
9 | 6 | 3 | 6 | 1 | 10 |
loop02 | |||||
6 | 9 | 3 | 6 | 1 | 10 |
6 | 3 | 9 | 6 | 1 | 10 |
6 | 3 | 6 | 9 | 1 | 10 |
6 | 3 | 6 | 1 | 9 | 10 |
loop03 | |||||
3 | 6 | 6 | 1 | 9 | 10 |
3 | 6 | 6 | 1 | 9 | 10 |
3 | 6 | 1 | 6 | 9 | 10 |
loop04 | |||||
3 | 6 | 1 | 6 | 9 | 10 |
3 | 1 | 6 | 6 | 9 | 10 |
loop05 | |||||
1 | 3 | 6 | 6 | 9 | 10 |
개인적으로 공부한 내용 포스팅 중
잘못된 정보는 지적해주시면 좋겠습니다!