skip_test.c
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. #include <LEDA/impl/skiplist.h>
  2. #include <LEDA/stream.h>
  3. main(int argc, char** argv)
  4. {
  5.   string_istream args(argc-1,argv+1);
  6.   float p0 = 0.20;
  7.   float p1 = 0.60;
  8.   int   N  = 10000;
  9.   args >> p0 >> p1 >> N;
  10.   cout << string("# keys = %d     p0 = %f   p1 = %fn",N,p0,p1);
  11.   newline;
  12.   GenPtr* RAND = new GenPtr[N];
  13.   rand_int.set_seed(12345);
  14.   for(int i=0; i<N; i++) RAND[i] = (GenPtr)rand_int(0,MAXINT-1);
  15.   float T0 = used_time();
  16.   float T  = used_time();
  17.   newline;
  18.   cout << "               insert    lookup    delete     totaln";
  19.   newline;
  20.   for(float prob = p0; prob < p1; prob += 0.01)
  21.   { 
  22.     skiplist skip(prob);
  23.     cout << string("p = %4.2f   ",prob);
  24.     cout.flush();
  25.     int i;
  26.     for(i=0; i<N; i++)  skip.insert(RAND[i],0);
  27.     cout << string("%10.2f",used_time(T));
  28.     cout.flush();
  29.     for(i=0; i<N; i++)  skip.lookup(RAND[i]);
  30.     cout << string("%10.2f",used_time(T));
  31.     cout.flush();
  32.     for(i=0; i<N; i++)  skip.del(RAND[i]);
  33.     cout << string("%10.2f",used_time(T));
  34.     cout << string("%10.2f",used_time(T0));
  35.     newline;
  36.    }
  37.   return 0;
  38. }