- 정렬이란?
데이터가 주어졌을 때 이를 정해진 순서대로 나열하는 것- 버블 정렬이란?
인접한 2개의 데이터를 비교해, 앞의 데이터가 뒤의 데이터보다 크면 자리를 바꾸는 정렬 알고리즘
1 vs 10
-> 유지
10 vs 5
-> swap
10 vs 8
-> swap
10 vs 7
-> swap
10 vs 6
-> swap
10 vs 4
-> swap
10 vs 3
-> swap
10 vs 2
-> swap
10 vs 9
-> swap
1번의 반복이 끝나면 가장 큰 값 10
이 맨 뒤로 이동한다
정렬이 완료된 요소는 파란색
으로 표시함
def bubble_sort(data):
for i in range(len(data)):
for j in range(0, len(data) - 1, 1):
if (data[j] > data[j + 1]):
data[j], data[j + 1] = data[j + 1], data[j]
return data
데이터의 개수(n)만큼 반복하면서:
처음에는 0~n 비교,
두번째는 1~n 비교,
세번째는 2~n 비교하면서 앞의 데이터가 뒤의 데이터보다 크면 swap
References
나동빈 알고리즘 강의