Я разрабатываю обобщенный алгоритм анализа и проверяю его по следующему правилу
S ::= a | SS
Ну, алгоритм показывает мне все деревья, сгенерированные для строки, состоящей из n a
.
Например, следующая таблица показывает время, используемое алгоритмом из-за количества a
's
length trees time(ms)
1 1 1
2 1 1
3 2 2
4 5 2
5 14 2
6 42 2
7 132 5
8 429 13
9 1430 28
10 4862 75
11 16796 225
12 58786 471
13 208012 1877
14 742900 10206
Я не знаю, какой O
(обозначение Big O) мой алгоритм. Как я могу измерить это, потому что, конечно, время зависит от трех вещей:
- Длина строки для разбора
- Грамматическая сложность
- Производительность алгоритма