快速排序

来源:互联网 发布:linux 驱动 usleep 编辑:程序博客网 时间:2024/06/05 05:08

//快速排序核心思想:从数列中取出一个数作为基准数。将比这个数大的数全放到它的右边,

//小于或等于它的数全放到它的左边。再进行递归,最后只有三个数,即基准数左右都只剩下一个数。


/*
 * Quick.c * *  Created on: 2017年4月18日 *      Author: zzd */#include<stdio.h>#include<stdlib.h>void Quick(int a[],int l,int n){if(l<n){int i=l,j=n,x=a[l];while(i<j){while(i<j&&a[j]>=x){j--;} //从右到左找第一个小于X的数if(i<j){a[i++]=a[j];}while(i<j&&a[i]<x){i++;}//从左到右找第一个大于X的数if(i<j){a[j--]=a[i];}}a[i]=x;Quick(a,l,i-1);Quick(a,i+1,n);}}int main(){int b[10]={1,546,8,3,26,45,789,125,645,22};Quick(b,0,9);for(int o=0;o<10;o++) printf("%d\n",b[o]);return 0;}