Удав написал(а):
На практике разницей во времени поиска в сортированных и хеш-таблицах для реальных задач можно пренебречь. Главное - не использовать поиск по несортированным таблицам.
Позвольте не согласиться. Пример из se30(Single Read: Sorted vs. hashed tables ) в моей системе показывает разницу в 20%(т.е. чтение из хэш-таблицы на 20% быстрее). При том, что там речь идет о чтении 250 раз из таблицы длинной 1000. В продуктивной задаче данных может быть и побольше, выигрыш будет аналогично - больше.
Другое дело, что всегда стоит подумать в зависимости от задачи в целом. Правильно построенный механизм перебора записей между собой (да ну хотя бы на примере из того же se30 в части Joining internal tables - использование параллельных курсоров - не смотря на всю свою банальность) может давать лучшую производительность даже на обычных таблицах, чем "наивный" алгоритм с использованием sorted\hashed таблиц
weise написал(а):
Да, я разумеется знаю про O-нотацию. Но на практике интересны не теоретические ассимптоты, а абсолютные значения... что O(1) вроде как и не совсем от 1, скорее от n
O(f(n)) - это не значит, что прям вот скорость\сложность алгоритма f(n) и все. а то, что скорость не превышает некоторой f(n) да еще и умноженной на
некоторую константу. Т.е. есть некий порог, он точно не превышается, но до него может быть достаточно произвольное поведение.