Re[57]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.09.21 13:21
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Тогда на верхнем уровне в любом случае виртуальность.

Нет конечно, не в любом. Все эти типы — struct, так что в коде нет ни одного виртуального вызова.

V>Что странно.



V>Попробую найти время, посмотреть на балансировку.

Да она там совершенно обычная, как в учебнике.
V>Точная балансировка тем дороже, чем больше арность, потому что приходится создавать более дорогие копии при каждом изменении дерева.
Да, одиночные вставки могут подтормаживать; зато на AddRange можно немножко наиграть за счёт повторного использования.

V>Ну вот как раз ради случая хеш-таблицы в хеш-таблицах всё и затевалось.

V>Capacity каждой хеш-таблицы относительно невелик (23, 19, 17, 13, 11), пересоздавать при изменении достаточно одну таблицу, а не всю цепочку их до корневого узла, как оно есть в иммутабельных деревьях при балансировке.
Да, мысль хорошая. У меня задачи делать IDictionary<,> не стояло, а для IList<> B-дерево выглядит самой эффективной реализацией.

V>Самый простой вариант — складывать конфликты в упорядоченный список (массив конфликтующих значений).

Да, именно этот вариант первым приведён у Кнута, емнип.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.