数据结构与算法——快速排序
//快速排序
#include<stdio.h>
void QuickSort(int arr[], int before, int after );
int main( )
{
int i;
int arr[]={3,4,2,6,1,9,8,5,7,2};
int len=sizeof(arr)/sizeof(arr[0]);
QuickSort(arr,0,len-1);
for(i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
}
void QuickSort(int arr[], int before, int after )
{
int i=before,j=after;
int temp=arr[before];
while(i<j)
{
while(i<j&&temp<=arr[j])
j--;
if(i<j)
{
arr[i]=arr[j];
i++;
}
while(i<j&&temp>arr[i])
i++;
if(i<j)
{
arr[j]=arr[i];
j--;
}
arr[i]=temp;
}
if(i-1>before)
QuickSort(arr,before,i-1);
if(j+1<after)
QuickSort(arr,j+1,after);
}