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

MultiPlatform

  1. #include <LEDA/map.h>
  2. #include <LEDA/h_array.h>
  3. #include <LEDA/d_array.h>
  4. /*
  5. #include <LEDA/dph_array.h>
  6. */
  7. main()
  8.   int N0[10000];
  9.   int i;
  10.   for(i=0; i<1000; i++) N0[i] = 0;
  11.   map<int,int>       M(0);
  12.   h_array<int,int>   N1(0);
  13.   h_array<int,int>   N2(0,1024);
  14.   d_array<int,int>   N3(0);
  15. //  dph_array<int,int> N4(0);
  16.   int n = read_int("n = ");
  17.   int* A = new int[n];
  18.   rand_int.set_seed(1234*n);
  19.   for(i=0; i<n; i++)  A[i] = rand_int(1,9999);
  20.   float T = used_time();
  21.   for(i=0; i<n; i++)  N0[A[i]]++;
  22.   cout << string("c++ array: %.2f sec",used_time(T)) << endl; 
  23.   T = used_time();
  24.   for(i=0; i<n; i++)  M[A[i]]++;
  25.   cout << string("map:       %.2f sec",used_time(T)) << endl; 
  26.   T = used_time();
  27.   for(i=0; i<n; i++)  N1[A[i]]++;
  28.   cout << string("h_array:   %.2f sec",used_time(T)) << endl; 
  29.   T = used_time();
  30.   for(i=0; i<n; i++)  N2[A[i]]++;
  31.   cout << string("h_array:   %.2f sec",used_time(T)) << endl; 
  32.   T = used_time();
  33.   for(i=0; i<n; i++)  N3[A[i]]++;
  34.   cout << string("d_array:   %.2f sec",used_time(T)) << endl; 
  35. /*
  36.   for(i=0; i<n; i++)  N4[A[i]]++;
  37.   cout << string("dph_array: %.2f sec",used_time(T)) << endl; 
  38. */
  39.   /* forall_defined(i,N1) cout << i << ": " << N1[i] << endl; */
  40.   for(i=1; i<1000; i++)
  41.     if (M[i] != N0[i] || N1[i] != N0[i] || N3[i] != N0[i])
  42.         error_handler(1," error in h_array");
  43.   return 0;
  44. }