快速排序

来源:互联网 发布:地缘看世界 知乎 编辑:程序博客网 时间:2024/06/06 02:54


            快速排序较冒泡排序而言,递归与两个for循环相比,降低了时间复杂度,速度也更快,是有效常用的一种排序方法。


#include <stdio.h>#include <stdlib.h>#define N 10void fast_sort(int a[],int beg,int end){    int l=beg,r=end;    int t=a[beg];    if(beg<end)    {        while(l<r)        {            while((a[r]>=t)&&(l<r))            {                r--;            }            a[l]=a[r];            while((a[l]<=t)&&(l<r))            {                l++;            }            a[r]=a[l];        }        a[l]=t;        fast_sort(a,beg,l-1);        fast_sort(a,r+1,end);    }    else         return ;}int main(){    int a[N],i;    for(i=0;i<N;i++)    {        scanf("%d",&a[i]);    }    fast_sort(a,0,N-1);    for(i=0;i<N;i++)        printf("%d ",a[i]);    printf("\n");    return 0;}


0 0
原创粉丝点击