차밍이

[알고리즘] 패스트캠퍼스 알고리즘 학습 - 삽입 정렬(Insertion Sort) 본문

파이썬/알고리즘

[알고리즘] 패스트캠퍼스 알고리즘 학습 - 삽입 정렬(Insertion Sort)

2021. 3. 31. 20:46
반응형

목차

     

    1. 삽입 정렬 방식

    1. 두 번째 인덱스에서부터 시작하여 데이터를 확인한다.
    2. 앞에 있는 데이터들과 하나씩 비교하면서 자신의 자리를 찾아나간다.
    3. 가장 작은 값이면 맨 앞까지 계속 이동한다. 혹은 자기보다 작은 데이터가 앞에 있으면 그 뒤쪽으로 데이터를 삽입한다.

     

    2. 소스 코드

    import random
    
    data_list = random.sample(range(100), 10)
    print(data_list)
    
    >>>
    [24, 62, 17, 81, 74, 55, 92, 93, 82, 53]

    랜덤으로 정렬하기 위한 숫자 데이터 리스트를 생성한다.

     

    for i in range(1, len(data_list)):
        for j in range(i-1,-1,-1):
            if data_list[j] > data_list[j+1]:
                data_list[j+1], data_list[j] = data_list[j], data_list[j+1]
                print(data_list)
            else:
                break
    
    >>>
    [24, 17, 62, 81, 74, 55, 92, 93, 82, 53]
    [17, 24, 62, 81, 74, 55, 92, 93, 82, 53]
    [17, 24, 62, 74, 81, 55, 92, 93, 82, 53]
    [17, 24, 62, 74, 55, 81, 92, 93, 82, 53]
    [17, 24, 62, 55, 74, 81, 92, 93, 82, 53]
    [17, 24, 55, 62, 74, 81, 92, 93, 82, 53]
    [17, 24, 55, 62, 74, 81, 92, 82, 93, 53]
    [17, 24, 55, 62, 74, 81, 82, 92, 93, 53]
    [17, 24, 55, 62, 74, 81, 82, 92, 53, 93]
    [17, 24, 55, 62, 74, 81, 82, 53, 92, 93]
    [17, 24, 55, 62, 74, 81, 53, 82, 92, 93]
    [17, 24, 55, 62, 74, 53, 81, 82, 92, 93]
    [17, 24, 55, 62, 53, 74, 81, 82, 92, 93]
    [17, 24, 55, 53, 62, 74, 81, 82, 92, 93]
    [17, 24, 53, 55, 62, 74, 81, 82, 92, 93]

    데이터가 하나씩 앞으로 이동하며 정렬되는 과정을 확인할 수 있다.

    뒤에서부터 데이터를 비교하며 앞쪽으로 이동하는 모습을 확인할 수 있다.

     

    3. 다른 글

    [알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 자료구조란?

    [알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 스택이란?

    [알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 링크드 리스트(Linked List)

    [알고리즘] 패스트캠퍼스 알고리즘 학습 정리 - 더블 링크드 리스트(Double Linked List)

    반응형

    관련된 글 보기

    Comments