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

MultiPlatform

  1. #include <LEDA/basic.h>
  2. #include <LEDA/list.h>
  3. #include <LEDA/array.h>
  4. main () 
  5. {
  6.   int i;
  7.   int N = read_int("N = "); 
  8.   float T = used_time();
  9.   cout << "building arrays      ";
  10.   cout.flush();
  11.   array<int>    Ai(N);
  12.   array<float>  Af(N);
  13.   array<double> Ad(N);
  14.   for (i = 0; i < N; i++) Ad[i] = Af[i] = Ai[i] = rand_int(1,1000000);
  15.   cout << string("  %5.3f sec",used_time(T));
  16.   newline;
  17.  
  18.   cout << "building lists       ";
  19.   cout.flush();
  20.   list<int>     Li;
  21.   list<float>   Lf;
  22.   list<double>  Ld;
  23.   for (i = 0; i < N; i++) 
  24.   { Li.append(Ai[i]);
  25.     Lf.append(Af[i]);
  26.     Ld.append(Ad[i]);
  27.   }
  28.   cout << string("  %5.3f sec",used_time(T));
  29.   newline;
  30.   newline;
  31.   cout << "sorting array<int>   ";
  32.   cout.flush();
  33.   Ai.sort();
  34.   cout << string("  %5.3f sec",used_time(T));
  35.   newline;
  36.  
  37.   cout << "sorting again        ";
  38.   cout.flush();
  39.   Ai.sort();
  40.   cout << string("  %5.3f sec",used_time(T));
  41.   newline;
  42.   cout << "sorting array<float> ";
  43.   cout.flush();
  44.   Af.sort();
  45.   cout << string("  %5.3f sec",used_time(T));
  46.   newline;
  47.   cout << "sorting array<double>";
  48.   cout.flush();
  49.   Ad.sort();
  50.   cout << string("  %5.3f sec",used_time(T));
  51.   newline;
  52.   newline;
  53.   cout << "sorting list<int>    ";
  54.   cout.flush();
  55.   Li.sort();
  56.   cout << string("  %5.3f sec",used_time(T));
  57.   newline;
  58.   cout << "sorting again        ";
  59.   cout.flush();
  60.   Li.sort();
  61.   cout << string("  %5.3f sec",used_time(T));
  62.   newline;
  63.   cout << "sorting list<float>  ";
  64.   cout.flush();
  65.   Lf.sort();
  66.   cout << string("  %5.3f sec",used_time(T));
  67.   newline;
  68.   cout << "sorting list<double> ";
  69.   cout.flush();
  70.   Ld.sort();
  71.   cout << string("  %5.3f sec",used_time(T));
  72.   newline;
  73.   newline;
  74.   cout << "test sorting         ";
  75.   cout.flush();
  76.   for(i=0;i<N;i++)
  77.   { int    x = Li.pop();
  78.     float  y = Lf.pop();
  79.     double z = Ld.pop();
  80.     if (x != y || y != z || z != Ai[i] || Ai[i] != Af[i] || Af[i] != Ad[i]) 
  81.       cout << "ERRORn";
  82.    }
  83.   cout << string("  %5.3f sec",used_time(T));
  84.   newline;
  85.   return 0;
  86. }