[C] 선택 정렬
출처 - C로 배우는 알고리즘 (이재규 지음)
안정성 - 없음(이름순으로 먼저 정렬하고 점수순으로 다시 정렬 했을 때 이름순으로 정렬한 내용이 흩어짐)
실행시간 - 데이터양이 두배 들어나면 시간은 4배 늘어남, N(데이터 량)의 제곱
안정성 - 없음(이름순으로 먼저 정렬하고 점수순으로 다시 정렬 했을 때 이름순으로 정렬한 내용이 흩어짐)
실행시간 - 데이터양이 두배 들어나면 시간은 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;
}
}
댓글
댓글 쓰기