
서로 인접한 두 원소의 선후관계를 확인하여 정렬하는 알고리즘 방법
[5, 1, 9, 7, 2, 3]의 배열
1회차
5와 1을 비교하여 작은 값을 앞으로 이동
입력값: 5 1 9 7 2 3
출력값: 1 5 9 7 2 3
2회차
5와 9를 비교하여 작은 값을 앞으로 이동
입력값: 1 5 9 7 2 3
출력값: 1 5 9 7 2 3
3회차
9와 7을 비교하여 작은 값을 앞으로 이동
입력값: 1 5 9 7 2 3
출력값: 1 5 7 9 2 3
4회차
9와 2를 비교하여 작은 값을 앞으로 이동
입력값: 1 5 7 9 2 3
출력값: 1 5 7 2 9 3
4회차
9와 3을 비교하여 작은 값을 앞으로 이동
입력값: 1 5 7 2 9 3
출력값: 1 5 7 2 3 9
최종
1 5 7 2 3 9로 정렬을 완성
# Bubble Sort
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
# Bubble Sort - pseudo code
for i ← 0 to n-i-1 do{
for j ← 0 to n-i-2 do{
if arr[j] > arr[j+1]
}
Swap (arr[j], arr[j+1])
}
비교 횟수
교환 횟수
T(N) = O(N²)
