알고리즘/알고리즘 이론과 구현
버블정렬(BubbleSort) 이론과 파이썬 구현
me1
2020. 5. 12. 22:26
버블정렬(BubbleSort)
버블정렬은 이웃하는 숫자를 비교하여 작은 수를 앞으로 이동시키는 과정을 반복합니다.
이를 한번 진행하면 가장 큰 수가 리스트의 오른쪽 끝으로 이동합니다. 그럼 오른쪽 리스트는 정렬된 상태가 됩니다.
이 과정을 리스트 크기- 1 까지 반복하면 전체를 정렬할 수 있습니다.
작은 수를 앞으로 이동시키는 과정이 물속에서 버블(거품)이 떠오르는 것과 유사하여 버블정렬이라는 이름을 사용합니다.
3 > 2 이기 때문에 3과 2를 교환해줍니다.
3 은 5보다 크지 않기 때문에 교환하지 않습니다.
5 > 4 이기 때문에 5와 4를 교환해줍니다.
5 > 1 이기 때문에 5와 1를 교환해줍니다.
첫번째 과정을 통해 5는 정렬 완료 되었습니다.
다음 반복때는 5를 제외하고 정렬합니다.
버블정렬의 파이썬 코드입니다.
a = [3, 2, 5, 4, 1]
for i in range(len(a)-1):
for j in range(len(a)-1-i):
if a[j] > a[j+1]:
a[j], a[j+1] = a[j+1], a[j]
# 출력>>[1, 2, 3, 4, 5]
print(a)