1. Bubble Sort?
- 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘
--> 인접한 2개의 노드를 비교하여 크기순으로 서로 교환을 해준다.
2. 더 자세히!
- 버블 정렬은 인접된 두 노드, 즉 (첫 번째, 두번째),(두 번째, 세 번째),(세 번째,네 번째)... 이런 식으로
마지막 노드를 비교하여 교환하면서 데이터를 정렬한다.
- 그림을 보면 더 쉽게 이해가능하다.
- 반대로 마지막 부터 시작으로 역순으로 버블이 움직여도 괜찮다.(CLRS에선 역순으로 움직인다.)
3. Code(Python)
def bubble_sort(arr,n):
for i in range(n):
for j in range(n,i,-1):
if arr[j] < arr[j-1]:
arr[j] , arr[j-1] = arr[j-1],arr[j]
4. Bubble Sort의 시간복잡도
- 결국 n-1부터 1까지의 합만큼 실행이 된다.
- 즉, n(n-1)/2
- T(n) = O(n^2)이라고 할 수 있다.
'CS Study > CLRS (자료구조 | 알고리즘)' 카테고리의 다른 글
[CLRS] [4-1] Multiplying square matrices(행렬 곱) (0) | 2024.09.05 |
---|---|
[CLRS] [3-1] 시간 복잡도 (big-O, big-Ω, big-θ) (0) | 2024.09.04 |
[CLRS] [2-3] Merge Sort(병합 정렬) (1) | 2024.09.04 |
[CLRS] [2-2] Analyzing algorithms (0) | 2024.09.02 |
[CLRS] [2-1] 삽입 정렬(Insertion sort)? (0) | 2024.09.01 |