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

MultiPlatform

  1. #include <LEDA/_sortseq.h>
  2. #include <LEDA/impl/skiplist.h>
  3. #include <LEDA/impl/ab_tree.h>
  4. #include <LEDA/impl/bin_tree.h>
  5. void seq_test(sortseq<int,int>& D, int N, int* A, char* name)
  6. { int i;
  7.   float T0 = used_time();
  8.   float T  = T0;
  9.   cout << string("%-10s",name);
  10.   cout.flush();
  11.   for(i=0; i<N; i++)  D.insert(A[i],0);
  12.   cout << string("%10.2f",used_time(T));
  13.   cout.flush();
  14.   for(i=0; i<N; i++)  D.lookup(A[i]);
  15.   cout << string("%10.2f",used_time(T));
  16.   cout.flush();
  17.   for(i=0; i<N; i++)  D.del(A[i]);
  18.   cout << string("%10.2f",used_time(T));
  19.   cout << string("%10.2f",used_time(T0));
  20.   newline;
  21. }
  22. main()
  23. {
  24.   sortseq<int,int>           RS_SEQ;
  25.  _sortseq<int,int,skiplist> SKIP_SEQ;
  26.  _sortseq<int,int,ab_tree>  AB_SEQ;
  27.  _sortseq<int,int,bin_tree> BIN_SEQ;
  28.   int     N = read_int("# keys = ");
  29.   int* RAND = new int[N];
  30.   for(int i=0; i<N; i++) RAND[i] = rand_int(0,1000000);
  31.   newline;
  32.   cout << "               insert    lookup    delete     total";
  33.   newline;
  34.   newline;
  35.   seq_test(RS_SEQ,N,RAND,"rs_tree");
  36.   seq_test(SKIP_SEQ,N,RAND,"skiplist");
  37.   seq_test(AB_SEQ,N,RAND,"ab_tree");
  38.   seq_test(BIN_SEQ,N,RAND,"bin_tree");
  39.   return 0;
  40. }