반응형
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
#define TRUE 1
#define FALSE 0
void MakeRandomNumber(void);
void QuickSort(int [], int, int);
void DisPlayBuffer(void);
int IsNumberExit(int, int);
int Buf[MAX];
void main()
{
printf("정렬할 데이터의 초기화\n");
MakeRandomNumber();
DisPlayBuffer();
printf("정렬 후 데이터\n");
QuickSort(Buf, 0, MAX -1);
DisPlayBuffer();
printf("\n");
}
/* 정렬할 데이터의 초기화 */
void MakeRandomNumber(void)
{
int i, Num;
i=1;
srand((unsigned)time(NULL));
Buf[0] = 100;
while(i < MAX){
Num = rand() % MAX;
if(!IsNumberExit(Num, i)){
Buf[i] = Num;
i++;
}
}
}
int IsNumberExit(int number, int index)
{
int i;
for(i=1; i<index; i++){
if(Buf[i] == number)
return TRUE;
}
return FALSE;
}
void QuickSort(int data[], int left, int right)
{
int num, i, j, temp;
if(right > left){
num = data[right];
i=left - 1;
j=right;
for( ; ; ){
while(data[++i] < num);
while(data[--j] > num);
if(i >= j )
break;
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
temp = data[i];
data[i]=data[right];
data[right]=temp;
QuickSort(data, left, i-1);
QuickSort(data, i+1, right);
}
}
void DisPlayBuffer(void)
{
int i;
for(i=0; i<MAX; i++){
if((i%10)==0)
printf("\n");
printf("%4d", Buf[i]);
}
printf("\n");
}
반응형
'Programings > Algorithms' 카테고리의 다른 글
[Algorith] 병합 정렬 (Merge Sort) (0) | 2010.10.06 |
---|---|
[Algorith] 쉘 정렬 (Shell Sort) (0) | 2010.09.07 |
[Algorith] 버블 정렬 (Bubble Sort) (0) | 2010.09.07 |
[Algorith] 삽입 정렬 (Insertion Sort) (0) | 2010.09.07 |
[Algorith] 선택 정렬 (Selection sort) (0) | 2010.09.07 |