#include//快速排序算法/*b是起始索引号m是终止索引号.快排的思想是:1.选取一个基准值.一般选最左边第一个值.2.把其它元素分为两部分,左部分小于或等于这个基准值.右部分大于或等于这个基准值.而这个基准值是分界线.快排的过程是:0.i=第一个元素位置索引号 j=最后一个元素的位置索引号 x等于第i个元素的值1.从位置j开始从右向左找比x小的值的索引号,这个过程就是每一次j都减小1直到找到为止.i==j终止2.将比x小的值填入到i索引的位置.也就是j索引中的值.3.i自增1.4.比较x与位置i上的元素,小于x则i自加,否则把i位置上的值放入到位置j中.i==j终止5.如果i==j则进入第6步,否则回到步骤1.6.返回i的值...小于i的索引的值都小于或等于x,大于i的索引都大于或等于x...左索引号i等于右索引号是快排终止的条件...快排每一次为一个数值找到一个确切的位置...返回值是快排下一次排序划分的依据.*/int quickpartition(int a[],int b,int m){ int i,j,x; i=b,j=m; x=a[i]; while(i x) break; i++; } a[j]=a[i]; } a[i]=x; return i; }/*快速排序法是一种交换排序法,就是先选一个基准值,然后把小于等于这个基准值的元素划到左边,大于等于这个基准值的值划到右边.*先调用排序算法,然后对左右两边也分别递归调用排序算法.* 递归调用自身*/void quicksort(int a[],int b,int m){ int i,j,k; if(b
输出如下:
输出:10 25 38 45 45 66 88 90