2012-05-22 4 views
1

Я немного смущен относительно худшего времени для случая и случайности 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: enter image description here

+0

Можете ли вы указать что-то конкретное в слайдах, которые сбивают с толку. Я не совсем уверен. – Justin

+0

@ Justin: Конечно, я просто снимаю скриншот и отправляю его. –

+1

Даже после просмотра связанной информации, я не совсем уверен, каков ваш реальный вопрос. Тем не менее, должно быть достаточно очевидно, что независимо от структуры вашей информации нет возможности посещать каждый узел ничем иным, чем O (n). Вставка (или удаление или поиск) одного узла может быть O (log n), но построение всего дерева, очевидно, вставляет каждый узел, поэтому требуется n * O (log n) == O (n log n) - возможно, это что вам не хватает. Ваш элемент (1) указывает среднее/худшее время для одной вставки, а не строит все дерево. – twalberg

ответ

1

In (1) Вы предоставляете время для каждого элемента, необходимо умножить на # элементов.

+0

Вы имеете в виду n Время в каждой Вставка элемента, я имею в виду, если у нас есть четыре элит {1,2,3,4}, и у каждого есть стоимость 5, тогда общая стоимость = 5 * 1 + 5 * 1 + 5 * 1 + 5 * 1. Таким образом, в BST элемент n примет n^2 Time. Правильно ли я Стефан –

+0

Да. Стоимость одной вставки в худшем случае - O (H). Таким образом, стоимость n вставок равна O (n * n). –

1

Временная сложность, необходимая для построения двоичного дерева, в разы превышает сложность, которую вы предлагаете, поскольку вам нужно вставлять каждый узел.

+0

Спасибо izomorphius за ваш вопрос .... –

Смежные вопросы