Я немного смущен относительно худшего времени для случая и случайности Avg. Мой источник путаницы HereСортировка по: Дерево двоичного поиска
Моя цель состоит в том, чтобы короткие данные в возрастающем порядке: я выбираю BST, чтобы выполнить мою задачу сортировки. Здесь я помещаю то, что я делаю для печати данных в порядке возрастания.
1) Construct a binary search tree for given input.
Time complexity: Avg Case O(log n)
Worst Case O(H) {H is height of tree, here we can Assume Height is equal to number of node H = n}
2)After Finishing first work I am traversing BST in Inorder to print data in Increasing order.
Time complexity: O(n) {n is the number of nodes in tree}
Now I analyzed total complexity for get my desire result (data in increasing order) is for Avg Case: T(n) = O(log n) +O(n) = max(log n, n) = O(n)
For Worst Case : T(n) = O(n) +O(n) = max(n, n) = O(n)
Наверху было мое понимание, которое отличается от концепции выше ссылки. Я знаю, что я ошибаюсь. Пожалуйста, поправьте меня. Буду признателен за ваше предложение и мысль.
Пожалуйста, обратитесь это название Under Slide, который я mentined:
Можете ли вы указать что-то конкретное в слайдах, которые сбивают с толку. Я не совсем уверен. – Justin
@ Justin: Конечно, я просто снимаю скриншот и отправляю его. –
Даже после просмотра связанной информации, я не совсем уверен, каков ваш реальный вопрос. Тем не менее, должно быть достаточно очевидно, что независимо от структуры вашей информации нет возможности посещать каждый узел ничем иным, чем O (n). Вставка (или удаление или поиск) одного узла может быть O (log n), но построение всего дерева, очевидно, вставляет каждый узел, поэтому требуется n * O (log n) == O (n log n) - возможно, это что вам не хватает. Ваш элемент (1) указывает среднее/худшее время для одной вставки, а не строит все дерево. – twalberg