알고리즘/알고리즘 이론과 구현
삽입정렬(InsertionSort) 이론과 파이썬 구현
me1
2020. 5. 11. 22:36
삽입정렬(InsertionSort)
삽입정렬은 리스트나 배열을 정렬된 부분과 정렬되지 않은 부분으로 나눕니다.
그 후 정렬되지 않은 부분의 가장 왼쪽 원소를 정렬된 부분의 적절한 위치에 삽입해 정렬되도록 합니다.
이 과정을 정렬되지 않은 부분이 없어질 때까지 반복하면 전체를 정렬할 수 있습니다.
삽입 정렬은 리스트의 상태에 따라 시간복잡도가 달라질 수 있습니다.
삽입 정렬은 거의 정렬이 되어 있는 경우에 새로운 원소를 추가할 때 다른 정렬 방법들보다 유용합니다.
삽입정렬의 파이썬 코드입니다.
a = [3, 2, 5, 4, 1]
for i in range(1,len(a)):
key = a[i]
j = i - 1
while j >= 0 and a[j] > key:
a[j+1] = a[j]
j = j - 1
a[j+1] = key
# 출력>>[1, 2, 3, 4, 5]
print(a)