티스토리 뷰

컴퓨터공학

[자료구조] 삽입정렬

walk_through_me 2019. 10. 11. 00:30

삽입정렬이란?

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

 

  • 들어갈 위치를 선택하는데 N번, 선택하는 횟수 N번으로 O(N²)의 시간 복잡도를 가짐
  • 배열이 길어질수록 효율이 떨어지지만, 구현이 간단함
  • 선택정렬이나 버블 정렬에 비해 빠름

이미지 출처 : Wikipedia

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

 

 

 

 

 

참고 | Wikipedia, fast campus 컴퓨터공학 전공 필수

'컴퓨터공학' 카테고리의 다른 글

[자료구조] 퀵정렬  (0) 2019.10.11
[자료구조] 버블정렬  (0) 2019.10.11
[자료구조] 선택정렬  (0) 2019.10.11
[자료구조] Queue  (0) 2019.10.09
[자료구조] Stack  (0) 2019.10.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함