快速排序:
# include <stdio.h>
void qsort(int a[],int low,int hight);
int main (void)
{
int i;
int a[]={1,5,3,9,7,5,6,2,48,646,65};
qsort(a,0,sizeof(a)/sizeof(a[0])-1); //sizeof(a)/sizeof(a[0])-1 表示数组的长度
for (i=0;i<(sizeof(a)/sizeof(a[0]));++i)
printf ("%d ",a[i]);
return 0;
}
void qsort(int a[],int low,int hight)
{
if (low >= hight)
return;
int frist,last,key;
frist = low;
last = hight;
key = a[frist]; //将第一个数字作为对比数字
while (frist < last)
{
while(frist < last && a[last] >= key)
--last;
a[frist] = a[last]; //将比第一个小的数字移到低位
while(frist < last && a[frist] <= key)
++frist;
a[last] = a[frist]; //将比第一个大是数字移到高位
}
a[frist] = key; //等同于交换
qsort(a,low,frist);
qsort(a,frist+1,hight);
}