Computer Science/Algorithm Codes

삽입정렬 예제

LiDARian 2020. 9. 20. 20:44
반응형
#삽입정렬 예제이다.

#먼저 연습

def insert_sort(lst):
    l = len(lst)
    i = 0
    lst_sort = []
    lst_sort.append(lst[i])
    for i in range(0,l):
        m = len(lst_sort)
        for j in range(0, m):
            if lst[i] < lst_sort[j]:
                lst_sort.insert(j, lst[i])
                break
            #맨 뒤까지 다 찾아봤으나 안보이는 경우 맨 뒤에 쳐박아야한다.
            if (j == (m-1)) and (lst[i] not in lst_sort) :
                lst_sort.append(lst[i])
    return lst_sort

d = [3,1,5,2,4]
print(insert_sort(d))

# 책에서 제시하는 삽입정렬 예시이다.

def ins_sort(lst):
    n = len(lst)
    for i in range(1,n):
        key = lst[i]        #i번위치의 값을 key라고 지정한다.
        j = i - 1
        while j>=0 and lst[j]>key : 
            lst[j+1] = lst[j]        #한칸씩 밀어내는 과정이다.
            j -= 1
        lst[j+1] = key
        
d = [2,4,5,1,3]
ins_sort(d)
print(d)
반응형

'Computer Science > Algorithm Codes' 카테고리의 다른 글

이진탐색 예제 (binary search example)  (0) 2020.09.26
병합정렬 오류 해결  (0) 2020.09.26
병합정렬 예제  (0) 2020.09.20
선택정렬 예제  (0) 2020.09.19
순차탐색  (0) 2020.09.19