[Algorithm] 삽입정렬 (배열에 있는 알파벳 차례대로 정렬하기)

정렬에는 버블정렬, 선택정렬, 삽입정렬이 있습니다. 앞서 버블정렬, 선택정렬은 포스팅을 끝냈고 이번 포스팅은 마지막 정렬방법인 삽입정렬에 대해 한번 알아보도록 하겠습니다.

 

삽입정렬 

삽입정렬은 기준이 되는 숫자와 그 앞에있는 숫자를 비교하여 조건에 맞게 정렬을 하는 방법입니다.

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언어] 버블정렬 (배열에 있는 정수값 오름차순 정렬하기)

[C언어] 선택정렬 (배열에 있는 정수값 내림차순 정렬하기)

[C언어] 병합정렬 (실무에서 많이쓰는 정렬방법)

[C언어] 퀵정렬 (가장 빠르고 효율적인 정렬방법)

[C언어] 여러가지 정렬 속도 비교(정렬의 시간복잡도

 

댓글

Designed by JB FACTORY