快速排序C实现代码
发布时间:2020-12-16 07:47:10 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #include stdio.h /*输出*/ void show(int [],int); void quickSort(int array[],int left,int right) { if(leftright) return; /*取最左边的值为pivo
|
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #include <stdio.h>
/*输出*/
void show(int [],int);
void quickSort(int array[],int left,int right)
{
if(left>right)
return;
/*取最左边的值为pivot(基准)*/
int i=left,j=right,pivot=array[left];
while(i<j)
{
while( (i<j) && (pivot <= array[j]) )
j--;
if(i<j)
array[i++]=array[j];
while( (i<j) && (array[i] <= pivot) )
i++;
if(i<j)
array[j--]=array[i];
}
array[j]=pivot;/*也可以是 array[i]=piovt。因为此时i=j*/
quickSort(array,left,i-1);
quickSort(array,i+1,right);
}
void main()
{
/*测试数据*/
//int array[]={4,3,9,8,5,7,1,6,2};
int array[]={9,4,2,123,22,34,56,76,345,221};
int LEN=sizeof(array)/sizeof(int);
printf("原始数组:n");
show(array,LEN);
printf("n-----n");
quickSort(array,LEN-1);
printf("n排序结果:n");
show(array,LEN);
}
/*打印*/
void show(int a[],int len)
{
int i;
for(i=0;i<len;i++)
printf("%d ",a[i]);
}
以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
