【初心者歓迎】C/C++室 Ver.70【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0053デフォルトの名無しさん
2009/11/25(水) 14:41:15#include <time.h>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int qsort_cmp(const int* a, const int* b) { return *a - *b; }
class stl_sort_functor_cmp { public: int operator()(const int &a, const int &b) const { return b > a; } };
unsigned int xor128() { static unsigned int t, x=123456789UL,y=362436069UL,
z=521288629UL,w=88675123UL; t=x^(x<<11); x=y; y=z; z=w; return w^=(w>>19)^t^(t>>8); }
void do_stl_sort_functor(int size) {
vector<int> v(size);for (int n=0; n<size; n++) v[n] = xor128();
double start_time = clock();
sort(v.begin(), v.end(), stl_sort_functor_cmp());
double elapsed = clock() - start_time;
cout<< " STL functor sort " << elapsed / CLOCKS_PER_SEC<<endl; }
void do_qsort(int size) {
int *v= new int [size];for (int n=0; n<size; n++) v[n] = xor128();
double start_time = clock();
qsort(v, size, 4, (int (*)(const void*, const void*))qsort_cmp);
double elapsed = clock() - start_time;
cout<< " qsort " << elapsed / CLOCKS_PER_SEC<<endl;
delete v; }
int main() {
int size = 10000000;
do_qsort(size); do_stl_sort_functor(size);
do_qsort(size); do_stl_sort_functor(size); }
■ このスレッドは過去ログ倉庫に格納されています