개념

버블 정렬

개발참치 2021. 7. 7.

제일 간단하고, 구현이 쉬운 정렬입니다. 

정렬을 단순하게 생각한다면 제일 먼저 떠오를만한 정렬로, 하나하나씩 정렬이 되는 게

거품이 올라오는 모습과 비슷하기에 버블 정렬이라는 이름이 생겼습니다.

그래서인지 대체로 효율적이지 않습니다.. (거품 정렬..)

 

특징

  • 제자리 정렬 (다른 메모리 공간 필요하지 않음)
  • 안정 정렬
  • 첫 번째 항목부터 마지막까지 입력 배열을 반복
  • 각 항목 쌍을 비교하면서, 필요하면 교환하는 동작 방식
  • 비교 특성상 맨 마지막부터 역차적으로 정렬이 된다
  • n-1, n-2, ,,, 2, 1 = n(n-1)/2

시간 복잡도

  • 최악: O (n^2)
  • 최선: O (n^2)
  • 평균: O (n^2)
시간 복잡도는 굉장히 비 효율적인 편입니다.

예시 그림

이렇게 반복

구현 코드 ( java )

void bubbleSort(int A [], int n) {
	for(int pass = n - 1; pass >= 0; pass--) {
		for (int i = 0; i < pass - 1; i++) {
			if (A[i] > A[i+1]) {
				int temp = A[min];
				A[i] = A[i + 1];
				A[i + 1] = temp;
			}
		}
	}
}

 

'개념' 카테고리의 다른 글

BFS (너비 우선 탐색)  (0) 2021.07.29
DFS (깊이 우선 탐색)  (0) 2021.07.29
합병 정렬  (0) 2021.07.07
삽입 정렬  (0) 2021.07.07
선택 정렬  (0) 2021.07.07

댓글