삽입 정렬 알고리즘

# 삽입 정렬
# 입력: 리스트 a
# 출력: 없음(입력으로 주어진 a가 정렬됨)
def insert_sort(a):
n = len(a)
for i in range(1, n): # 1부터 마지막까지
key = a[i] # i번 위치에 있는 값을 key에 저장
# j를 i바로 왼쪽 위치로 저장
j = i - 1
# 리스트의 j번 위치에 있는 값과 key를 비교해 key가 삽입될 적절한 위치를 찾음
while j >= 0 and a[j] > key:
a[j + 1] = a[j] # 삽입할 공간이 생기도록 값을 오른쪽으로 한 칸 이동
j -= 1
a[j + 1] = key # 찾은 삽입 위치에 key를 저장
l = [2, 4, 5, 1, 3]
insert_sort(l)
print(l)

실행 결과

+ Recent posts