Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include "RedBlackTree.h"
  2. #include <map>
  3. #include <vector>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7. //кол-во измерений
  8. #define VALUE_COUNT 100000
  9. //размер ключа
  10. #define KEY_SIZE 10
  11.  
  12. int main() {
  13.     srand(time(0));
  14.     map<string, int> Map;//std::map
  15.     vector<string> Keys;//вектор для хранения сгенерированных ключей
  16.     double mapTime = 0;//общее время вставки для std::map
  17.     double rbtTime = 0;//общее время вставки для дерева
  18.     clock_t start, end;
  19.     int v = 0;
  20.     for (int i = 0; i < VALUE_COUNT; i++) {
  21.         char c;
  22.         string k = "";
  23.         for (int j = 0; j < KEY_SIZE; j++) { //генерируем ключ
  24.             c = rand() % 255;
  25.             k += c;
  26.         }
  27.         Keys.push_back(k); //созхраняем ключ
  28.     }
  29.     start = clock();
  30.     for (std::vector<string>::iterator it = Keys.begin(); it != Keys.end(); ++it){
  31.         insertNode(*it,v); // вставка в дерево
  32.         findNode(*it);
  33.     }
  34.     end = clock();
  35.     rbtTime = (double)(end - start) / CLOCKS_PER_SEC * 1000.0;
  36.     start = clock();
  37.     for (std::vector<string>::iterator it = Keys.begin(); it != Keys.end(); ++it) {
  38.         Map.insert(pair<string, int>(*it, v)); //вставка в std::map
  39.         Map.find(*it);
  40.     }
  41.     end = clock();
  42.     mapTime = (double)(end - start) / CLOCKS_PER_SEC * 1000.0;
  43.     cout << "RBT insert/find average time: " << rbtTime / VALUE_COUNT << endl;
  44.     cout << "Map insert/find average time: " << mapTime / VALUE_COUNT << endl;
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement