정렬) 삽입정렬

Mongle·2020년 12월 4일
0

삽입정렬

<이것이 취업을 위한 코딩테스트이다, 161p, 나동빈, 한빛미디어>

잘못된 코드

  • 잘못된 코드
data = [7, 5, 0, 9, 3]
for i in range(1, len(data)):
    for j in range(i-1, 0, -1):
        if data[j] < data[i]:
            data[j], data[i] = data[i], data[j]
        else:
            break
print(data)

이중반복문을 사용할 때 항상 i와 j를 이용해서 비교하다보니 위와 같은 이상한 코드를 만들어버렸다..👶

수정된 코드

  • 이중반복문에서 인덱스를 1씩 감소시키면서 앞뒤를 계속 반복하는 경우에는 j와 j-1을 비교하면 편리하다.
data = [7, 5, 0, 9, 3]

for i in range(1, len(data)):
    for j in range(i, 0, -1):
        if data[j] < data[j-1]:
            data[j], data[j-1] = data[j-1], data[j]
        else:
            break

print(data)
profile
https://github.com/Jeongseo21

0개의 댓글