- insertion sort

오른쪽 리스트(정렬 안 된)에서 왼쪽 리스트(정렬 된)로 하나씩 자리를 찾아 삽입하면서 정렬

- 삽입을 위해 배열을 계속 이동시켜야 함

- 자료가 이미 정렬되어 있는 경우의 시간 복잡도 : 

  자료가 역순일 경우 최악의 
복잡도 : 


- 코드

void insertion_sort ( int *data, int n )
{
  int i, j, remember;
  for ( i = 1; i < n; i++ )
  {
    j = i;
    remember = data[j];
    while ( --j >= 0 && remember < data[j] )
        data[j+1] = data[j];
    data[j+1] = remember; 
  }
}
 

'Algorithm' 카테고리의 다른 글

알고리즘 - 셸 정렬  (0) 2015.11.12
알고리즘 - 버블 정렬  (0) 2015.11.12
알고리즘 - 선택 정렬  (0) 2015.11.12
알고리즘 - 재귀 호출  (0) 2015.11.12
알고리즘 - 복잡도 분석  (0) 2015.11.12

+ Recent posts