我的qsort(随机乱序输入的数据,从而使之趋向于平衡)
void sort(int low,int high,int key[])
{
int i,j,tag;
i=low; j=high;
if(i<j)
{
tag=key[i];
do
{
while(tag<key[j] && i<j) j--;
if(i<j)
{
key[i]=key[j];
i++;
while(tag>=key[i] && i<j) i++;
if(i<j)
{
key[j]=key[i];
j--;
}
}
}while(i<j);
key[i]=tag;
sort(low,j-1,key);
sort(i+1,high,key);
}
}
int main(void)
{
int i,tmp[3];
int n;
int key[200000];
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&key[i]);
for(i=n/2;i<n;i++)
{
tmp[0]=((rand()<<4)+rand())%n;
tmp[1]=((rand()<<4)+rand())%n;
tmp[2]=key[tmp[0]];
key[tmp[0]]=key[tmp[1]];
key[tmp[1]]=tmp[2];
}
sort(0,n-1,key);
for(i=0;i<n;i++)
{
printf("%d ",key[i]);
}
printf("\n");
return 0;
}
My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.