#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
void DynamicSort(int Data[],int nCount)
{
int count = 0;
int CmpData = 0;
int count1 = 0;
int ChaData = 0;
for(count = 0; count <nCount; count++) //처음 인덱스 0 부터 맥스 값 까지 정해놓고
{
for(count1 = count+1; count1<nCount; count1++) // 비교하는 대상자들의 범위를 지정 여기서 +1 을 하는 이유는 기준값보다 인덱스값이 하나더 높아야 하기때문입니다.
{
if(Data[count]>Data[count1]) // 비교하고 스왑
{
ChaData = Data[count];
Data[count] = Data[count1];
Data[count1] = ChaData;
}
}
}
}
int main()
{
int i = 0;
int Data[MAX] = {0,};
srand(time(NULL));
for(i=0; i<MAX; i++)
{
Data[i] = (rand()%10); // 배열에 랜덤으로 10미만 값들을 다 채워놓습니다
}
for(i=0; i <MAX; i++) printf("%2d",Data[i]); // 배열의 값들을 출력
printf("\n");
DynamicSort(Data,MAX); // 선택정렬 함수
for(i=0; i <MAX; i++) printf("%2d",Data[i]); //정렬후 배열의 값 출력
printf("\n");
}
/*
선택 정렬은 기준값 하고 비교 값들을 비교하면서 기준값보다 작으면 스왑(체인지)을 해주고 끝까지 가면 이젠
기준값을 바꿔주고 다시 한번 비교값들과 비교하면서 바꿔주는 방법입니다.
*/
'Soft Ware > 자료구조 및 알고리즘' 카테고리의 다른 글
세이커 정렬입니다 (0) | 2012.04.16 |
---|---|
버블 정렬입니다 (0) | 2012.04.16 |
유클리드 호제법을 이용한 최대공약수 구하기 (0) | 2012.04.16 |
중위 순위를 후위순위로 바꾸는 소스입니다 (0) | 2012.04.15 |
동적할당과 스택 구조를 이용하여 후위 연산해보기!! (0) | 2012.04.15 |