Stark_【快排】示例讲解

来源:互联网 发布:sql forceseek 编辑:程序博客网 时间:2024/05/29 09:22

快排?

反正就是快排就好了。

下面以一个求中位数的代码来讲解:

从右往左找!!!!!!

从右往左找!!!!!!

从右往左找!!!!!!

#include <stdio.h>#include <stdlib.h>int a[10005],n;int main(){void quicksort(int left,int right);while(~scanf("%d",&n)){int i;for(i=1;i<=n;i++){scanf("%d",&a[i]);}quicksort(1,n);printf("%d",a[(n+1)/2]);printf("\n");}return 0;}void quicksort(int left,int right){int i,j,t,temp;if(left>right){return;}temp=a[left];i=left;j=right;while(i!=j){while(a[j]>=temp && i<j){j--;//wtf,一定是先从右往左找!!!}while(a[i]<=temp && i<j){i++;}if(i<j){t=a[i];a[i]=a[j];a[j]=t;}}a[left]=a[i];a[i]=temp;quicksort(left,i-1);quicksort(i+1,right);return;}


0 0