반응형
출처 - C로 배우는 알고리즘 (이재규 지음)
안정성 - 없음(이름순으로 먼저 정렬하고 점수순으로 다시 정렬 했을 때 이름순으로 정렬한 내용이 흩어짐)
실행시간 - 데이터양이 두배 들어나면 시간은 4배 늘어남, N(데이터 량)의 제곱
#include <stdio.h>
void select_sort(char ary[], int aryCnt);
int main(int argc, char *argv[], char **env)
{
char ary[] = "TOLEARNSORTALGORITHM";
printf("Before Ary[%s]\n", ary);
select_sort(ary, (sizeof(ary) - 1/* NULL 문자 제외 */) / sizeof(char));
printf("After Ary[%s]\n", ary);
return 0;
}
void select_sort(char ary[], int aryCnt)
{
char min = 0;
int minIndex = 0;
int i = 0, j = 0;
for(i = 0; i < aryCnt - 1; i++)
{
minIndex = i;
min = ary[minIndex];
for(j = i + 1; j < aryCnt; j++)
{
if(min > ary[j])
{
minIndex = j;
min = ary[minIndex];
}
}
ary[minIndex] = ary[i];
ary[i] = min;
}
}
반응형
'C > Reference' 카테고리의 다른 글
[C] 단일 연결 리스트로 구현한 스택 (0) | 2024.12.18 |
---|---|
[C] 이중 연결 리스트로 구현한 큐 (0) | 2024.12.18 |
[C] 삽입 정렬 (0) | 2024.12.18 |
[C] C언어로 객체지향 흉내내기 (1) | 2024.12.18 |
[C] 년, 월, 일 입력 받아서 요일 구하는 함수 (0) | 2024.12.18 |