用快速排序的方法将数组中的元素进行排序;
#include<stdio.h>
void sort(int a[],int left ,int right)
{
int i,j,temp;
i=left;
j=right;
temp=a[left];
if(left>right) return;
/*第一个数组元素a[0]作为基准元素*/
while(i!=j) /*i不等于j时,循环进行*/
{
while(a[j]>=temp&&j>i)
j--;
if(j>i)
a[i++]=a[j];
while(a[i]<=temp&&j>i)
i++;
if(j>i)
a[j--]=a[i];
}
a[i]=temp;
sort(a,left,i-1); /*对小于基准元素的部分进行快速排序*/
sort(a,i+1,right); /*对大于基准元素的部分进行快速排序*/
}
void main()
{
int a[5]={ 10,2,3,21,5};
int i;
sort(a,0,4);
printf("从小到大排序后:\n");
for(i=0;i<5;i++)
{
printf("%d ",a[i]); /*输出排序结果 */
}
printf(" \n");
}
耶