#include<stdio.h>
#include<time.h>
void quick_Sort(int Array[],int left,int right)
{
int sentry,t;//sentry 哨兵 t中间变量
if(left>right)
return;
sentry=Array[left];
int i=left;
int j=right;
while(i!=j)//开始从两边往中间寻找
{
while(Array[j]>=sentry && i<j)//从右边寻找大于哨兵的数 此时J便为数组下标
j--;
while (Array[i]<=sentry && i<j)//从左边开始寻找大于哨兵的数,此时I为数组下标
i++;
if(i<j)//互换两个的位置
{
t=Array[i];
Array[i]=Array[j];
Array[j]=t;
}
}//到这一步已经找到了基准位置
Array[left]=Array[i];
Array[i]=sentry;
quick_Sort(Array,left,i-1);
quick_Sort(Array,i+1,right);
return;
}
int main()
{
int data[10]={0,9,8,7,6,5,4,3,2,1};
quick_Sort(data,0,9);
for(int i=0;i<10;i++)
printf("%d%c",data[i],i==9 ? '\n' : ' ');
printf("Time used=%.2lf",(double)clock());//显示运行时间
return 0;
}
快速排序(C语言)
最新推荐文章于 2023-01-03 17:33:03 发布