高速ソートのc++実装
2247 ワード
int part(int p[], int i,int j)
{
int key=p[i];
while(i<j)
{
while(i<j&&p[j]>=key)
j--;
if(i<j)
p[i]=p[j];
i++;
while(i<j&&p[i]<=key)
i++;
if(i<j)
p[j]=p[i];
j--;
}
p[i]=key;
return i;
}
void qsort(int p[],int i,int j)
{
if(i<j)
{
int div=part(p,i,j);
qsort(p,i,div-1);
qsort(p,div+1,j);
}
}
参照先:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html