vak: (бэсм-6)
[personal profile] vak
Состряпал реализацию map<string, int> на скорую руку на Си, не без помощи ИИ. Грок неленивый программист, если ему прямо говорить что делать.Выбрано представление в виде AVL деревьев. Они компактнее по памяти и вроде эффективнее красно-чёрных деревьев на всех операциях. Хэш был бы неплох, но вычисление хэш функций на словном процессоре типа БЭСМ-6 неэффективно.

Заодно узнал, что AVL деревья представляют собой наследие советской науки. Изобретены в 1962 году Адельсон-Вельским и Ландисом, на десять лет раньше красно-чёрных деревьев.

Георгий Максимович Адельсон-Вельский стоял у истоков шахматной программы Каисса. В 1992 году эмигрировал в Израиль.

Евгений Михайлович Ландис родом из Харькова. В 1968 году подписал нашумевшее письмо в защиту А. С. Есенина-Вольпина.

Date: 2025-05-19 22:47 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Угадай с трех раз, почему в Паскаль-компиляторе используется хэш.

Date: 2025-05-19 23:13 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
В СССР про AVL деревья в курсе были все. Главный ответ: потому что идентификаторы были однословные!

Побочные ответы: потому, что реализация сбалансированных деревьев занимает безумное количество кода по сравнению с реализацией хэша, и потому, что удалять элементы из контейнера при закрытии scope тривиально, в отличие от дерева.