퀵 정렬(Quick Sort)
call하여
처리한다.
퀵 정렬(Quick Sort)함수
void quick_sort(int a[], int left, int right) {
int privoit,i,j,tmp;
if (left<rigth) {
i = left; j = rigth+1; pivot = a[left];
while(i<j) {
// i를 증가시켜가며 pivot 보다 큰 값을 찾는다.
// j를 감소시켜가며 pivot 보다 작은 값을 찾는다.
if(i<j)
//i와 j 위치의 값을 교환하여 작은 값을 앞으로 모으고 큰 값은 뒤로 모은다.
}
//a[j]와 a[left]의 값 교환
quick_sort(a,left,j-1);
quick sort(a,j+1,rigth);
}
}
퀵 정렬(Quick Sort)의 재귀호출
퀵 정렬 활용 프로그래밍
#include<stdio.h>
#include<conio.h>
void quick_sort(int a[],int left,int right)
{
int pivot,i,j,tmp;
if(left<right)
{
i=left;j=right+1;
pivot=a[left];
while(i<j)
{
do
i++;
while((a[i]<=pivot)&&(i<right));
do
j--;
while((a[j]>=pivot)&&(j>left));
if(i<j)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
if(j!=left)
{
tmp=a[j];
a[j]=a[left];
a[left]=tmp;
}
quick_sort(a,left,j-1);
quick_sort(a,j+1,right);
}
}
int print_list(int list[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d ",list[i]);
}
printf("\n\n");
}
void main()
{
int list[]={11,16,5,10,25,7,30,17,0,8};
int n;
char sorted;
n=sizeof(list)/sizeof(int);
quick_sort(list,0,n-1);
printf("출력:");
print_list(list,n)
}