1.01 ^ 365 = 37.78

[Sort]삽입정렬 본문

프로그래밍/정렬

[Sort]삽입정렬

Youngchangoon 2016. 4. 17. 20:17

1.소개


삽입정렬은 배열의 이미 정렬된 배열를 검사하면서

자신의 자리를 찾아 가는 정렬입니다.



2. 장점


구현이 간단하다.


이미 정렬되있을 경우 효율이 좋다.




3 단점


배열이 길어질수록 효율이 떨어진다.


최악의 경우  복잡도가 O(n²)이 될 수 있다.



4. 정렬 방법


0123456789101112131415

- 제일 처음 요소는 정렬이 되있다고 가정한다.


- 점차 검사요소는 커진다.


- Key 값을 검사하다가 자신보다 큰수(오름차순)가 나오면

배열의 요소를 한요소씩 밀다가 작은수(오름차순) 이나오면

그 자리에다가 Key 값을 넣는다.





5. 코드


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
void InsertSort(int *data, int size);
 
int main()
{
    int testArr[] = { 4,3,2,1 };
    InsertSort(testArr, 4);
    for (int i = 0; i < 4++i) 
    {  
        cout << testArr[i] << " ";
    } 
    cout << endl;
    return 0;
}
 
void InsertSort(int *data, int size)
{
    int temp, i, j;
    for (i = 1; i < size++i)
    {
        temp = data[i];
        for (j = i - 1; j >= 0 && data[j] > temp; j--)
        {
            data[j + 1= data[j];
        }
        data[j + 1= temp;
    }
}
 

cs




'프로그래밍 > 정렬' 카테고리의 다른 글

[Sort] 개선된 버블정렬  (0) 2015.09.29
[Sort] 퀵 졍렬  (0) 2015.09.29