Bubble Sort

jeongwon yun·2022년 10월 16일
0

Algorithm

목록 보기
3/18

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]

0개의 댓글