삽입 정렬 (Insertion-Sort)
- 삽입 정렬은 복잡도가 O(n^2)인 느린 알고리즘이다.
- 정렬 되지 않은 임의의 데이터를 이미 정렬된 부분의 적절한 위치에 삽입하며 정렬하는 알고리즘이다.
동작 원리
- 처음 배열의 두번째 원소를 키값으로 설정하고 자신의 앞부분 배열의 원소들과 비교해 자신의 자리를 찾는다
- 자신의 자리를 찾은 곳에 원소를 배치한다
- 다음 원소를 키값으로 앞부분의 배열의 원소들과 비교해 자신의 자리를 찾아나가 배열의 정렬을 한다.
소스
- #include<stdio.h>
- int main(void)
- {
- int arr[5] = {5,4,3,1,2};
- int key = 0;
- int temp = 1;
- int temp2 = 0;
- int dis = 0;
- for(;temp < 5; temp++)
- {
- key = arr[temp];
- temp2 = temp - 1;
- while(arr[temp2] > key && temp2 >=0)
- {
- arr[temp2+1] = arr[temp2];
- temp2 --;
- }
- arr[temp2+1] = key;
- }
- for(dis = 0; dis<5;dis++)
- {
- }
- return 0;
- }
결과
'c언어(알고리즘)' 카테고리의 다른 글
스택(Stacks) - 배열로 구현(The implementation with the array) (0) | 2016.11.01 |
---|---|
힙 정렬 (Heap-Sort) (0) | 2016.11.01 |
퀵 정렬(Quick-Sort) (0) | 2016.11.01 |
선택정렬(Selection-Sort) (0) | 2016.11.01 |
병합 정렬(Merge-Sort) (0) | 2016.10.17 |