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

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

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

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

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

textual
Листинг программы
public static void PrintTime(IDictionary myCol, int nk)
{
    if (!myCol.Contains(nk)) return;
    
    Stopwatch stopwatch = Stopwatch.StartNew();
    const int iterations = 100000-1;
    int count = 0;
    for (int i=0; i<iterations; i++)
    {
        if (myCol.Contains(nk))
        {
            // Выполняем действие внутри if чтобы JIT компилятор не выполнял оптимизаций вызова
            count++;
        }
    }
    Console.WriteLine(stopwatch.Elapsed/iterations);
    Console.WriteLine();
}

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


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

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

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