В чем преимущество двоичного дерева поиска по сортированному массиву с бинарным поиском? Просто с математическим анализом я не вижу разницы, поэтому я предполагаю, что накладные расходы на низком уровне должны быть разными. Анализ среднего времени выполнения приведен ниже.бинарный поиск vs двоичное дерево поиска
отсортированный массив с бинарным поиском
поиск: O (журнал (п))
вставки: O (журнал (п)) (мы запускаем бинарный поиск, чтобы найти место для вставки элемента)
удаления: O (журнал (п)) (мы запускаем бинарный поиск, чтобы найти элемент для удаления)
бинарное дерево поиска
поиска: O (журнал (п))
вставки: O (журнал (п))
удаления: O (log (n))
Двоичный поиск tre es имеют худший случай O (n) для операций, перечисленных выше (если дерево не сбалансировано), так что это похоже на то, что на самом деле это будет хуже, чем отсортированный массив с бинарным поиском.
Кроме того, я не предполагаю, что мы должны предварительно отсортировать массив (что будет стоить O (nlog (n)), мы будем вставлять элементы один за другим в массив, как это было бы сделано для двоичного дерева . Единственная польза от BST я могу видеть, что он поддерживает другие типы прохождений как заказовМой, предзаказ, postorder.
Вставка и удаление из бинарного массива поиска - O (n), и только поиск - O (log (n)). –
Если бы это был, скажем, связанный список вместо массива, тогда вставка/удаление примет значение «O (log n)». Но не так для массива. – Bhaskar
@Bhaskar, другой неправильный комментарий, любой вид поиска по связанному списку - O (n). – Blindy