삽입 정렬 (Insertion sort)

삽입 정렬(insertion sort)은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.

삽입 정렬 애니메이션

예제

3125122211처음 상태.
31[25]122211 두 번째 원소를 부분 리스트에서 적절한 위치에 삽입한다.
<25>31[12]2211 세 번째 원소를 부분 리스트에서 적절한 위치에 삽입한다.
<12>2531[22]11 네 번째 원소를 부분 리스트에서 적절한 위치에 삽입한다.
12<22>2531[11] 마지막 원소를 부분 리스트에서 적절한 위치에 삽입한다.
<11>12222531 종료.
삽입 정렬 예제

소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
void insertion_sort(int list[], int n)
{
  int key;
  for (int i = 1; i < n; i++)
  {
    key = list[i];
    for (int j = i  1; j >= 0 && list[j] > key; j)
    {
      list[j + 1= list[j];
    }
    list[j + 1= key;
  }
}
cs

특징

그다지 효율이 좋은 정렬 방법은 아니지만, 구현이 쉽다는 장점이 있다.

참조 : 위키백과

관련글

제목 작성자 작성일