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 = [31251212211]
    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

+ Recent posts