Breath everything
Home
  • 분류 전체보기 (133)
    • 취미 (29)
    • 영어 (30)
      • Daily 영어표현 (24)
      • TOEIC_OPIC (6)
    • IT (47)
      • 따로 공부 (13)
      • 외부강의 (3)
      • 자료구조 & 알고리즘 (20)
      • 백준 (9)
      • 프로그래머스 (2)
    • 자격증 (5)
    • 기타 (19)
    • 복기 (1)
      • 코딩테스트 (1)
Home
  • 분류 전체보기 (133)
    • 취미 (29)
    • 영어 (30)
      • Daily 영어표현 (24)
      • TOEIC_OPIC (6)
    • IT (47)
      • 따로 공부 (13)
      • 외부강의 (3)
      • 자료구조 & 알고리즘 (20)
      • 백준 (9)
      • 프로그래머스 (2)
    • 자격증 (5)
    • 기타 (19)
    • 복기 (1)
      • 코딩테스트 (1)
블로그 내 검색

Breath everything

이것 저것

  • IT/자료구조 & 알고리즘

    [알고리즘] 삽입정렬(Insertion Sort) (Python)

    2021. 7. 29.

    by. ziasu

    반응형

    1. 기본 원리

    • 데이터를 왼쪽부터 오른쪽에 있는 값을 하나씩 추가하면서 확장해나간다. 
    • 확장할 때마다 오른쪽에서 들어온 값들을 사이사이에 넣어보면서 정렬을 맞춰나간다.

    ex)

    a = [5,1,2,3]이면

    1. [5,1] 범위에서 1을 5와 비교하여 [1,5]로 정렬

    2. [1,5,2] 범위에서 2를 5,1과 비교하여 [1,2,5]로 정렬

    3. [1,2,5,3] 범위에서 3을 5,2,1과 비교하여 [1,2,3,5]로 정렬

     

    2. 코드 구현 전 생각정리

    • 어느 범위까지 정렬 처리가 완료되었는지를 나타내는 좌표를 변수에 저장해야 하나?
    • 왼쪽에서부터 점점 확장해나가는 범위? 는 이미 정렬이 되어있음을 명심

     

    3. 코드 구현

    def insertion(input):
        for i in range(len(input)-1):
            insert_idx = i+1
            for j in range(insert_idx,0,-1):
                if input[j]<input[j-1]:
                    input[j-1],input[j] = input[j],input[j-1]
                else:
                    break #이미 좌측은 정렬이 되어있기 때문에 왼쪽으로 이동하면서 수정이 필요한 부분이 보이지 않으면 break
       
        return input

     

     

    4. 시간 복잡도

    • 이중 for문이 있으므로 O(n^2)

     

    반응형
    저작자표시 (새창열림)

    'IT > 자료구조 & 알고리즘' 카테고리의 다른 글

    [알고리즘] 재귀 용법(Recursive Call) (Python)  (0) 2021.08.04
    시간 복잡도(Time Complexity) & 공간 복잡도(Space Complexity)  (0) 2021.07.30
    [알고리즘] 선택정렬(Selection Sort) (Python)  (0) 2021.07.29
    [알고리즘] 버블정렬(Bubble Sort) (Python)  (0) 2021.07.29

    댓글

    관련글

    • [알고리즘] 재귀 용법(Recursive Call) (Python) 2021.08.04
    • 시간 복잡도(Time Complexity) & 공간 복잡도(Space Complexity) 2021.07.30
    • [알고리즘] 선택정렬(Selection Sort) (Python) 2021.07.29
    • [알고리즘] 버블정렬(Bubble Sort) (Python) 2021.07.29
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
ziasu

티스토리툴바