Bubble Sort

  • 이름 그대로 방울이 터지는 것 처럼 연쇄적으로 비교하여 정렬
  • 상당히 간단하면서, 효율은 그렇게 좋지 못 한 정렬
    • 1956년 논문 “Electronic Computer Systems” “Sort in” 에 존재 기재되어 있다 한다.
  • 최초 시작부터 최종까지 앞뒤를 비교하면서 모든 값을 비교하며 정렬

시간 복잡도

(Worst) (Avg)

간단 코드

# 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

개인적으로 공부한 내용 포스팅 중
잘못된 정보는 지적해주시면 좋겠습니다!

+ Recent posts