Re[4]: Верно ли написан тест скорости выполнения
От: Passerby  
Дата: 06.02.20 11:19
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Passerby, Вы писали:


P>>По спецификации словаря так, действительно, делать нельзя. Но пока реализация словаря выполнена в виде структуры структур, то можно.

S>Этот набор слов непонятен. Реализация словаря выполнена в виде hash map, и у неё порядок элементов не совпадает с порядком добавления.
Там деление блоков по хэшу начинается после какого-то (кажется 1000-го) элемента. У меня меньше.
Random rnd = new Random();
      int c1 = 10000, c2 = 50;

      Dictionary<string, int> dict = new Dictionary<string, int>(c2);
      for (int i = 0; i < c2; i++)
      {        
        dict.Add(rnd.Next().ToString(), i);
      }
      { }

Не нашел как добавить рисунок, который показывает сохранение порядка в этом коде.





P>>Какой выход?

S>Кэшировать:
S>
S>  public class myReverserClass : IComparer
S>    {
S>      private IComparer _caseInsensitiveComparer = new new CaseInsensitiveComparer();
S>      int IComparer.Compare(Object x, Object y) => _caseInsensitiveComparer.Compare(x,y);
S>    }
S>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.