간단한 개념

1, 2 → 2, 3 → 3, 4 → ... 순서로 비교해서 더 큰수가 뒤로 가도록 자리를 바꾸며 최댓값을 뒤로 보낸다. 마지막이 N번째 항에 최댓값이 오면 다시 처음부터 비교하여 N-1번째 항에 두번째로 큰 값을 넣는다. 이를 정렬이 될 때 까지 반복한다.

매우 비효율적인 정렬 알고리즘이라 쓰이지 않는다.

Python

import random

n = 20
a = [random.randrange(0, 40) for _ in range(n)]
print(" < origin >")
print(*a)

# Bubble Sort O(N^2)
for i in range(n - 1):
    for j in range(n - i - 1):
        if a[j] > a[j+1]:
            a[j], a[j+1] = a[j+1], a[j]

print("\\n< Bubble Sort >")
print(*a)
< origin >
7 7 9 17 27 32 20 38 11 28 38 37 6 4 23 27 9 15 24 38

< Bubble Sort >
4 6 7 7 9 9 11 15 17 20 23 24 27 27 28 32 37 38 38 38

비효율적인 알고리즘이므로 Python으로 간단히 구현법만 정리한다.


back_to_top