| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我的快排过不了啊,总是TLE,求优化。(附代码)(虽然用STL过了)void qs(int s[],int l,int r)
{
int p,i,j;
int t,temp;
if(l>=r)
return;
if(r-l<=16)
{
for(i=l;i<r;i++)
for(j=i+1;j<=r;j++)
if(s[i]>s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
return;
}
p=rand()%(r-l)+l;
temp=s[p];
s[p]=s[r];
for(j=r,i=-1;i<j;)
{
for(;i<j;)
if(s[++i]>temp)
{
s[j]=s[i];
break;
}
for(;i<j;)
if(s[--j]<temp)
{
s[i]=s[j];
break;
}
}
s[i]=temp;
qs(s,l,i-1);
qs(s,i+1,r);
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator