336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
이미 정렬된 배열 부분과 비교하여 자신의 위치를 찾아 삽입한다.
아래 그림을 보면 이미 정렬되어 있는 부분이 어느정도 있다고 가정하자.
이후 sort된 부분과 X를 비교한다.
그리고 X가 큰 값이 나오기 전의 위치에 값을 삽입한다.
아래는 python 로 작성한 코드이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def insertion_sort(unsort_data): sort_data = [] for unsorted_index in range(len(unsort_data)): position = -1 pivot = unsort_data[unsorted_index] for sorted_index in range(len(sort_data)): if(sort_data[sorted_index] > pivot): position = sorted_index break if(position == -1): position = len(sort_data) sort_data.insert(position, pivot) ##print("sorting..",sort_data) return sort_data if __name__ == "__main__": ll = [31, 25, 121, 22, 11] print(insertion_sort(ll)) | cs |
'PSNote > Algorithm' 카테고리의 다른 글
힙 정렬(Heap sort) (0) | 2018.06.07 |
---|---|
기수정렬(Radix sort) (0) | 2017.12.05 |
선택정렬(Selection Sort) (0) | 2017.11.19 |
버블정렬(Bubble Sort) (0) | 2017.11.18 |
네트워크플로우, 에드몬드 카프(Edmonds-Karp) 알고리즘 (0) | 2017.11.15 |