Compare commits

..

1 Commits

Author SHA1 Message Date
d575d117a8 add data structures report 2026-05-22 13:09:19 +03:00

View File

@ -71,7 +71,7 @@
в миллисекунды.
> Для **BST в режиме `sorted`** пришлось снизить N до 2 000. При N = 10 000
> вставка занимает десятки минут (сложность операции - `O(N**2)`, дерево превращается
> вставка занимает десятки минут (сложность операции - `O(N²)`, дерево превращается
> в связный список). Это и есть главная иллюстрация «деградации BST».
### 3.2. Результаты (средние, миллисекунды)
@ -103,7 +103,7 @@
### 4.1. Почему связный список такой медленный на вставке
Мой `ll_insert` идёт до конца списка, чтобы потом обновить узел, если он уже
есть. На Nм элементе он совершает уже N шагов. Суммарно - около N**2/2
есть. На Nм элементе он совершает уже N шагов. Суммарно - около N²/2
операций. На N = 10 000 это даёт ~50 миллионов проходов по узлам - отсюда
и ~4 секунды.
@ -131,7 +131,7 @@ N/2 шагов и таких запросов всего 110. Сложность
Когда имена приходят в алфавитном порядке, каждый новый ключ всегда больше
предыдущего, поэтому он идёт в правое поддерево. Дерево превращается
в правый «костыль» - фактически в односвязный список. Сложность вставки -
O(N**2), поиска и удаления - O(N).
O(N²), поиска и удаления - O(N).
На графике `bst_degradation.png` это видно очень ярко: даже при **в 5 раз
меньшем N (2 000 вместо 10 000)** все операции у sorted BST занимают