二分法快速排序法 qsort C源码

来源:互联网 发布:淘宝网店复制 编辑:程序博客网 时间:2024/05/16 19:05

#include "//C//pcheader.h"
qsort(int sa,int a,int b){
int i,j;
int k,l;
i=a;j=b;
k=sa[(a+b)/2];
putsl("mid val:"+k);
while(sa[i]<k)++i;
while(sa[j]>k)--j;
while(i<j ){
l=sa[i];
sa[i]=sa[j];
sa[j]=l;
++i;--j;
while(sa[i]<k)++i;
while(sa[j]>k)--j;
}
if(i==j){i--; 
if(a<i-1)qsort(sa,a,i);
if(j<b-1 )qsort(sa,i+1,b-1);}
if(i>j ){
if(a<=i-1)qsort(sa,a,i-1);
if(j<=b-1 )qsort(sa,j+1,b);
}
}
main(){
char ca;
int sa[1000],ts,te;
int i1,j1,Y,kk,kkk1;kk=0;
while(kk<1){
kkk1=gets("GETS:  RAND: ");
for(i1=0;i1<kkk1;i1++){sa[i1]=random(1000);}
putsl("");

qsort(sa,0,kkk1);

putsl("sort: ");
for(i1=0;i1<kkk1;i1++){putsl(sa[i1]+" ");
}showconsole();putsl("");
kk++;
}
}

原创粉丝点击