본문 바로가기

CS지식/알고리즘

[CS지식 - 알고리즘]삽입정렬

1. 삽입정렬

  • 필요할때만 각 데이터를 적절한 위치에 삽입하는 정렬(앞에 있는 원소들이 이미 정렬되어있다고 가정)
  • 두번째 원소부터 시작하여 그 앞의 원소들과 비교해 삽입할 위치를 지정한 후 원소를 뒤로 옮기로 지정된 자리에 자료를 삽입하는 정렬하는 알고리즘

2. 정렬방법

  1. 현재 타겟이 되는 숫자와 이전 위치에 있는 원소들을 비교.(첫번째 타켓은 두 번쨰 원소부터 시작)
  2. 타겟이 되는 숫자가 이전 위치에 있던 원소보다 작다면 위치를 서로 교환
  3. 그 다음 타겟을 찾아 위와 같은 방법으로 반복

3. 특징

장점

  • 안정적 정렬방법
  • 레코드 수가 적을 경우, 알고리즘 자체가 매우 간단해 다른 정렬보다 유리
  • 대부분 레코드가 이미 정렬되어 있는 경우 효율적
  • 버블 정렬이나 선택정렬에 비해 상대적으로 빠름

단점

  • 비교적 많은 레코드들의 이동을 포함
  • 레코드 수가  많고 레코드 크기가 클 경우 부적합