[Algorithm] 삽입정렬 (배열에 있는 알파벳 차례대로 정렬하기)
- ETC./Algorithm
- 2018. 4. 27.
정렬에는 버블정렬, 선택정렬, 삽입정렬이 있습니다. 앞서 버블정렬, 선택정렬은 포스팅을 끝냈고 이번 포스팅은 마지막 정렬방법인 삽입정렬에 대해 한번 알아보도록 하겠습니다.
삽입정렬
삽입정렬은 기준이 되는 숫자와 그 앞에있는 숫자를 비교하여 조건에 맞게 정렬을 하는 방법입니다.
0번째 인덱스는 앞쪽에있는 숫자가 없기 때문에 정렬의 시작은 1번째 인덱스로 시작을 합니다.
삽입정렬로 배열 문자(알파벳)값 아스키순서로 차례대로 정렬하기 (C언어/C++)
#define num 7
char number[num] = {'C','A','D','G','F','E','B'};
for (int i = 1; i < num; i++) {
int target = number[i]; // 기준
int cur = i - 1; // 비교할 대상
while (cur >= 0 && target < number[cur]) {
// 비교대상이 큰 경우 오른쪽으로 밀어냄
number[cur + 1] = number[cur];
cur--;
}
number[cur + 1] = target; // 기준값 저장
}
for (int i = 0; i < num; i++) {
printf("[%c]",number[i]);
}
결과값
[C언어] 버블정렬 (배열에 있는 정수값 오름차순 정렬하기)
'ETC. > Algorithm' 카테고리의 다른 글
[Algorithm] 퀵정렬 (빠르고 효율적인 정렬방법) (9) | 2018.05.07 |
---|---|
[Algorithm] 병합정렬 O(N*LogN) (0) | 2018.05.06 |
[Algorithm] 선택정렬 (배열에 있는 정수값 내림차순 정렬하기) (1) | 2018.04.25 |
[Algorithm] 버블정렬 (배열에 있는 정수값 오름차순 정렬하기) (2) | 2018.04.24 |