эффективность алгоритма ближайшей пары - PullRequest
2 голосов
/ 25 апреля 2011

В T (n) = 2T (n / 2) + M (n), откуда берутся 2 перед T. n / 2, потому что оно делится, а M (n) линейно, но я не могу понять, для чего 2?

Ответы [ 4 ]

4 голосов
/ 25 апреля 2011

2, потому что вы выполняете операцию на двух подмножествах. См. основную теорему .

1 голос
/ 25 апреля 2011

2 представляет, сколько раз вы собираетесь вызывать повторяющуюся функцию.

Например, если у вас есть дерево с 4 дочерними элементами, вы ожидаете 4 для этого значения. В этом случае вы повторяетесь дважды.

1 голос
/ 25 апреля 2011

Это говорит о том, что затраты времени на проблему размера n связаны с делением задачи пополам (т. Е. T (n / 2)) и ее решением для обеих половин (2 T (n / 2)) плюс некоторое исправление стоимость (т. е. M (n)).

Итак, 2 означает, что вы делите задачу пополам и решаете обе половины.

1 голос
/ 25 апреля 2011

Отношение повторения похоже на то, что вы получаете в Сортировка слиянием .Временная сложность будет O (n log n)

...