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

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


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


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


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

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

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

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

I>это не важно. это просто спецэффект))) такой)))

I>хэш-таблица по своей сути не сортированна.
I>это ассоциативный массив, в которм адресация происходит с помощью операции свертики...

Что значит спецэффект? Объясните, почему заполнение списка идет в порядке заполнения словаря?

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);
      }
      List<(string, int)> lsi = new List<(string, int)>(c2);
      foreach (var v in dict)
      {
        lsi.Add((v.Key, v.Value));      
      }
      { }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.