알고리즘 - 퀵 정렬(Quick sort)
카테고리 없음 / 2011. 11. 2. 17:56
#include<stdio.h>
#include<math.h>
void QuickSort(int *pData, int begin, int end); // 퀷트
int size;
int num = 0;
int i;
int main()
{
int i;
int data[7] = {0, };
printf("7개의 정수를입력하시오\n");
for(i = 0;i<7; ++i)
{
scanf("%d", data+i);
}
size = sizeof(data)/sizeof(int);
QuickSort(data, 0, size-1);
for(i=0;i<7;++i)
{
printf("%3d", data[i]);
}
printf("\n");
return 0;
}
void QuickSort(int *pData, int begin, int end)
{
int L;
int R;
int temp;
int pivot;
int t;
L = begin;
R = end+1;
pivot = pData[begin];
printf("[ %d번째 pivot = %d] \n", ++num, pivot);
if(begin >=end)
{
return ;
}
do
{
do
{
++L;
}
while(pData[L] < pivot);
do
{
--R;
}
while(pData[R] > pivot);
if(L<R)
{
temp = pData[L];
pData[L] = pData[R];
pData[R] = temp;
}
else
{
break;
}
}
while(1);
pData[begin] = pData[R];
pData[R] = pivot;
for(t=0; t<size; ++t)
{
printf(" %d", pData[t]);
}
printf("\n");
QuickSort(pData, begin, R-1);
QuickSort(pData, R+1, end);
return ;
}
#include<math.h>
void QuickSort(int *pData, int begin, int end); // 퀷트
int size;
int num = 0;
int i;
int main()
{
int i;
int data[7] = {0, };
printf("7개의 정수를입력하시오\n");
for(i = 0;i<7; ++i)
{
scanf("%d", data+i);
}
size = sizeof(data)/sizeof(int);
QuickSort(data, 0, size-1);
for(i=0;i<7;++i)
{
printf("%3d", data[i]);
}
printf("\n");
return 0;
}
void QuickSort(int *pData, int begin, int end)
{
int L;
int R;
int temp;
int pivot;
int t;
L = begin;
R = end+1;
pivot = pData[begin];
printf("[ %d번째 pivot = %d] \n", ++num, pivot);
if(begin >=end)
{
return ;
}
do
{
do
{
++L;
}
while(pData[L] < pivot);
do
{
--R;
}
while(pData[R] > pivot);
if(L<R)
{
temp = pData[L];
pData[L] = pData[R];
pData[R] = temp;
}
else
{
break;
}
}
while(1);
pData[begin] = pData[R];
pData[R] = pivot;
for(t=0; t<size; ++t)
{
printf(" %d", pData[t]);
}
printf("\n");
QuickSort(pData, begin, R-1);
QuickSort(pData, R+1, end);
return ;
}