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]