Измерение скорости поиска в ListDictionary - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер, подскажите, как практически узнать скорость поиска в ListDictionary. Наример:
Листинг программы
  1. Random rand = new Random();
  2. ListDictionary dic = new ListDictionary();
  3. for (int i = 0; i < 10000; ++i) {
  4. int n = rand.Next(0, 100);
  5. dic.Add(i, "[" + n + "]");
  6. }
Заполнили 10к значениями, а как узнать скорость поиска в мсек? Поиск осуществлять через Contains?
Так не получается:
Листинг программы
  1. public static long PrintTime(IDictionary myCol)
  2. {
  3. long time_;
  4. long start =(long)(DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;
  5. if (myCol.Contains(676)) {
  6. long stop=(long)(DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;
  7. return time_=stop-start;
  8. }
  9. return -1;
  10. }

Решение задачи: «Измерение скорости поиска в ListDictionary»

textual
Листинг программы
  1. public static void PrintTime(IDictionary myCol, int nk)
  2. {
  3.     if (!myCol.Contains(nk)) return;
  4.    
  5.     Stopwatch stopwatch = Stopwatch.StartNew();
  6.     const int iterations = 100000-1;
  7.     int count = 0;
  8.     for (int i=0; i<iterations; i++)
  9.     {
  10.         if (myCol.Contains(nk))
  11.         {
  12.             // Выполняем действие внутри if чтобы JIT компилятор не выполнял оптимизаций вызова
  13.             count++;
  14.         }
  15.     }
  16.     Console.WriteLine(stopwatch.Elapsed/iterations);
  17.     Console.WriteLine();
  18. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут