버블 정렬을 만들어보자
2020. 6. 25. 17:19ㆍ개발노트
def bubblesort(arr):
for i in range(1, len(arr)):
for j in range(len(arr) - i):
if arr[j] > arr[j+1]:
arr[j],arr[j+1] = arr[j+1],arr[j]
return arr
arr = [3,2,1]
print(bubblesort(arr))
i | j | arr[j] | arr[j+1] | if문 | arr |
1 | 0 | 3 | 2 | 성립 | [2,3,1] |
1 | 1 | 3 | 1 | 성립 | [2,1,3] |
2 | 0 | 2 | 1 | 성립 | [1,2,3] |
버블정렬은 배열 요소를 하나씩 쌓아가는게 특징이다.
뒤에서부터 혹은 앞에서부터 쌓인 배열 요소는 정렬이 이루어졌으므로 다음 반복부터 비교에서 제외한다.
for문에서 j값이 0부터 len(arr) - i 까지 반복하는 이유이다.