Сообщение от webgraph
|
Если он такой "тяжёлый", то чем его заменить?
|
Нечем.
Все зависит от того, какие именно операции и в какой последовательности выполняются у вас. И с какими целями.
Если у вас идет куча операция добавления в массив, то может быть просто добавлять их в конец, а потом отсортировать массив?
Есть вариант большой массив, по которому часто выполняется поиск, и иногда добавление. Для этого может быть пригоден такой вариант. Есть массив на 10000 (порядок) элементов. Он отсортирован. И есть маленький массив на 50 элементов. Добавление всегда в маленький. Поиск - сначала по большому, если не нашли - в маленьком. Когда маленький заполняется происходит слияние и сортировка массивов, маленький обнуляется и по новой...
Оптимальность зависит от условий использования.
С деревьями тоже не все так просто. Если ключи добавляются в достаточно случайном порядке, то все хорошо. Если же много ключей добавляется в возрастающем порядке, то дерево получается не сбалансированным и поиск по нему уже совсем не log2(N). И большого эффекта дерево не даст.