Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- javascript
- 방학여행
- Effective C#
- 빌드
- C#
- 책리뷰
- 정렬
- 독서
- 일본음식
- 프로그래밍도서
- 알고리즘 문제풀이
- IOS
- 해커랭크
- 해커랭크 문제풀이
- 유니티
- 문제풀이
- 이펙티브 C#
- 개발
- HackerRank
- 서평
- 코토리
- 프로그래밍
- 자유여행
- 독후감
- 이펙티브 씨샵
- Unity
- Android
- 책 정리
- 알고리즘
- build
Archives
- Today
- Total
Console.Log
[Sort]삽입정렬 본문
1.소개
삽입정렬은 배열의 이미 정렬된 배열를 검사하면서
자신의 자리를 찾아 가는 정렬입니다.
2. 장점
구현이 간단하다.
이미 정렬되있을 경우 효율이 좋다.
3 단점
배열이 길어질수록 효율이 떨어진다.
최악의 경우 복잡도가 O(n²)이 될 수 있다.
4. 정렬 방법
- 제일 처음 요소는 정렬이 되있다고 가정한다.
- 점차 검사요소는 커진다.
- 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; } } |
'프로그래밍 > 정렬' 카테고리의 다른 글
[Sort] 개선된 버블정렬 (0) | 2015.09.29 |
---|---|
[Sort] 퀵 졍렬 (0) | 2015.09.29 |