빠른 정렬 :
#include<stdio.h>
void quicksort(int * arr, int left,int right);
void swap(int *a,int *b);
int main()
{
int arr[10]={2,6,3,9,5,2,0,23,12,1};
int length=sizeof(arr)/sizeof(arr[0]);
quicksort(arr,0,length-1);
for(int i=0;i<length;i++)
printf("%d ",arr[i]);
}
void quicksort(int * arr, int left,int right)
{
int i=left,j=right;
int temp=arr[left];
if(left>right)
return;
while(i<j)
{
while(arr[j]>=temp&&i<j)
j--;
while(arr[i]<=temp&&i<j)
i++;
if(i<j)
swap(&arr[i],&arr[j]);
}
arr[left]=arr[i];
arr[i]=temp;
quicksort(arr,left,i-1);
quicksort(arr,i+1,right);
return;
}
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
수식 : 나는 좌우 빠른 배수 J, 나는 <J;
바로 앞 왼쪽에 대한 참조;
왼쪽 및 오른쪽 큰 j-- 작은 내가 ++;
왼쪽 및 오른쪽 위상 교환보다 큰;
난 J = 철회;
I 값과 상기 기준 센서 수단;
왼쪽의 가치와 재정렬 바로 값.