Compare commits
1 Commits
d575d117a8
...
75a182304e
| Author | SHA1 | Date | |
|---|---|---|---|
| 75a182304e |
|
|
@ -71,7 +71,7 @@
|
|||
в миллисекунды.
|
||||
|
||||
> Для **BST в режиме `sorted`** пришлось снизить N до 2 000. При N = 10 000
|
||||
> вставка занимает десятки минут (сложность операции - `O(N²)`, дерево превращается
|
||||
> вставка занимает десятки минут (сложность операции - `O(N**2)`, дерево превращается
|
||||
> в связный список). Это и есть главная иллюстрация «деградации BST».
|
||||
|
||||
### 3.2. Результаты (средние, миллисекунды)
|
||||
|
|
@ -103,7 +103,7 @@
|
|||
### 4.1. Почему связный список такой медленный на вставке
|
||||
|
||||
Мой `ll_insert` идёт до конца списка, чтобы потом обновить узел, если он уже
|
||||
есть. На N‑м элементе он совершает уже N шагов. Суммарно - около N²/2
|
||||
есть. На N‑м элементе он совершает уже N шагов. Суммарно - около N**2/2
|
||||
операций. На N = 10 000 это даёт ~50 миллионов проходов по узлам - отсюда
|
||||
и ~4 секунды.
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ N/2 шагов и таких запросов всего 110. Сложность
|
|||
Когда имена приходят в алфавитном порядке, каждый новый ключ всегда больше
|
||||
предыдущего, поэтому он идёт в правое поддерево. Дерево превращается
|
||||
в правый «костыль» - фактически в односвязный список. Сложность вставки -
|
||||
O(N²), поиска и удаления - O(N).
|
||||
O(N**2), поиска и удаления - O(N).
|
||||
|
||||
На графике `bst_degradation.png` это видно очень ярко: даже при **в 5 раз
|
||||
меньшем N (2 000 вместо 10 000)** все операции у sorted BST занимают
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user