qsortが極端に遅くなるサンプル。
(マイクロソフト、ボーランドのコンパイラでは確認したが他のコンパイラでは
試していない。)

#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
#include <windows.h>
int mycmp(const void* a,const void* b){ return *(int*)a-*(int*)b; }
int main()
{
int i,k,*a;
printf("k="); scanf("%d",&k);
a=new int[4*k];
for(i=0;i<k;i++){
a[2*i]=2*i+1;
a[2*i+1]=2*k+2*i+1;
a[2*k+i]=2*i+2;
a[3*k+i]=2*k+2*i+2;
}
DWORD t = GetTickCount();
qsort(a, 4*k, sizeof(int), mycmp);
//std::sort(a,a+4*k);
printf("%dms\n", GetTickCount()-t);
delete[] a;
return 0;
}