버블 정렬을 만들어보자

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 까지 반복하는 이유이다.