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

MultiPlatform

  1. #include <LEDA/list.h>
  2. #include <LEDA/integer.h>
  3. int ord(const integer& x) { return x.tolong()%1000; }
  4. int main () 
  5. {
  6.   list<integer>     L;
  7.   list<integer>     L1;
  8.   integer i;
  9.   i = i + 0;
  10.   int N = read_int("Number of list entries: "); 
  11.   float T = used_time();
  12.   cout << "allocating    ";
  13.   cout.flush();
  14.   for (i = 0; i < N; i++) L.append(rand_int(1,10000));
  15.   cout << string("  %5.3f sec",used_time(T));
  16.   newline;
  17.   cout << "reversing     ";
  18.   cout.flush();
  19.   while (!L.empty()) L1.push(L.pop());
  20.   cout << string("  %5.3f sec",used_time(T));
  21.   newline;
  22.   cout << "assignment    ";
  23.   cout.flush();
  24.   L = L1;
  25.   cout << string("  %5.3f sec",used_time(T));
  26.   newline;
  27.   cout << "sorting(int)  ";
  28.   cout.flush();
  29.   L.sort();
  30.   cout << string("  %5.3f sec",used_time(T));
  31.   newline;
  32.   cout << "sorting again ";
  33.   cout.flush();
  34.   L.sort();
  35.   cout << string("  %5.3f sec",used_time(T));
  36.   newline;
  37.   cout << "iteration     ";
  38.   cout.flush();
  39.   forall(i,L) {}
  40.   cout << string("  %5.3f sec",used_time(T));
  41.   newline;
  42.   cout << "bucket sort   ";
  43.   cout.flush();
  44.   L.bucket_sort(0,1000,ord);
  45.   cout << string("  %5.3f sec",used_time(T));
  46.   newline;
  47.   cout << "clear         ";
  48.   cout.flush();
  49.   L.clear();
  50.   cout << string("  %5.3f sec",used_time(T));
  51.   newline;
  52.   newline;
  53.   cout << "used memory = " << used_memory()/1024.0 << " kbn";
  54.   return 0;
  55. }