Я пытаюсь решить следующую задачу: «Для отсортированного (в порядке возрастания) массива с уникальными целочисленными элементами напишите алгоритм для создания BST с минимальной высотой».
В данном ответе корневой узел является серединой массива. Хотя это имеет смысл для меня интуитивно, я пытаюсь строго доказать, что всегда лучше сделать корневой узел серединой массива.
Обоснование, данное в книге, звучит так: «Чтобы создать дерево минимальной высоты, нам нужно как можно больше сопоставить количество узлов в левом поддереве с количеством узлов в правом поддереве. Это означает, что мы хотим, чтобы корень узел должен быть серединой массива, так как это означало бы, что половина элементов будет меньше корня, а половина больше».
Я хотел бы спросить:
Почему любое дерево минимальной высоты должно быть таким, в котором количество узлов в левом поддереве максимально равно количеству узлов в правом поддереве? (Или у вас есть другой способ доказать, что лучше всего сделать корневой узел серединой массива?)
Является ли дерево с минимальной высотой таким же, как сбалансированное дерево? Из предыдущего вопроса о SO у меня сложилось такое впечатление (Визуализация сбалансированного дерева), но я сбит с толку, потому что в книге конкретно указано «BST с минимальной высотой», а не «сбалансированный BST».
Спасибо.
Источник: Cracking the Coding Interview