快速排序算法

来源:互联网 发布:中航信托 知乎 编辑:程序博客网 时间:2024/06/18 02:35
/*快速排序算法的时间复杂度为O(n*log2n),它为不稳定的排序算法。*/#include <stdio.h>void QSort(int sum[],int left,int right){int i,j,temp;if(left<right){i=left;j=right;temp=sum[i];do{while(temp<sum[j]&&i<j)j--;if(i<j){sum[i]=sum[j];i++;}while(temp>sum[i]&&i<j)i++;if(i<j){sum[j]=sum[i];j--;}}while(i!=j);sum[i]=temp;QSort(sum,left,i-1);QSort(sum,i+1,right);}}int main(){int n,i;int sum[1010];scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&sum[i]);QSort(sum,1,n);for(i=1;i<=n;i++)printf("%d ",sum[i]);printf("\n");return 0;}