less than 1 minute read

bubble sort

arr = [8, 9, 5, 1, 2, 4]
n = len(arr)

for i in range(n - 1, 0, -1):
    for j in range(i):
        if arr[j] > arr[j + 1]:
            arr[j], arr[j + 1] = arr[j + 1], arr[j]
print(arr) # [1, 2, 4, 5, 8, 9]

작은 것 부터 앞에 고정시킨다면

arr = [8, 9, 5, 1, 2, 4]
n = len(arr)
for i in range(n - 1):
    for j in range(n - 2, i - 1, -1):
        if arr[j] > arr[j + 1]:
            arr[j], arr[j + 1] = arr[j + 1], arr[j]
print(arr) # [1, 2, 4, 5, 8, 9]

정렬이 완료해서 더 빨리 끝낸다면

arr = [8, 9, 5, 1, 2, 4]
n = len(arr)
for i in range(n - 1, 0, -1):
    isChanged = False # 정렬이 필요해서 바뀌는지 확인
    for j in range(i):
        if arr[j] > arr[j + 1]:
            arr[j], arr[j + 1] = arr[j + 1], arr[j]
            isChanged = True # 값을 바뀌면 True로
    if not isChanged: # 값이 안바꼈다면 이미 정렬되었다고 판단
        break
print(arr) # [1, 2, 4, 5, 8, 9]

Updated: