您的位置:首页 > 编程语言 > C语言/C++

c语言的快速排序法

2013-11-28 20:21 337 查看
#include<stdio.h>
int main()
{
int a[10]={21,23,55,77,99,23,44,66,88,13};
int low=0;
int high=9;
int qpass(int a[],int low,int high);
void qsort(int a[],int low,int high);
qsort(a,low,high);
for(int i=0;i<10;i++)
{
printf("%6d",a[i]);
}
return 0;
}

int qpass(int a[],int low,int high)
{
int x=a[low];
int key=a[low];
while(low<high)
{
while(low<high && a[high]>key)
high--;
if(low<high)
{
a[low]=a[high];
low++;
}
while(low<high && a[low]<=key)
low++;
if(low<high)
{
a[high]=a[low];
high--;
}
a[low]=x;
}
return low;
}

void qsort(int a[],int low,int high)
{
if(low<high)
{
int pos=qpass(a,low,high);
qsort(a,low,pos-1);
qsort(a,pos+1,high);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C 快速排序法