快速排序算法算法是冒泡排序的改进,选择一个元素作为枢纽(任意一个元素都可以,一般选择第一个元素或者中间的元素),进行一次排序后,比枢纽大的元素排在枢纽的右边,比枢纽小的元素排在枢纽左边。再递归分别排左边的元素和右边的元素。
代码如下:
#include<stdio.h>
void quick_sort(int R[],int const l,int const r)
{
if(l<r)
{
int i=l,j=r,temp=R[l];
while(i<j)
{
while(i<j && R[j]>=temp)--j;
if(i<j)
R[i++]=R[j];
while(i<j && R[i]<=temp)++i;
if(i<j)
R[j--]=R[i];
}
R[i]=temp;
quick_sort(R,l,i-1);
quick_sort(R,i+1,r);
}
}
void main(void)
{
int i;
int a[10]={6,5,4,3,2,1,0,9,8,7};
quick_sort(a,0,9);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}