Предположим, что у нас есть фиктивная сортировка слияния, где операция слияния стоит O(n^2)
вместо O(n)
. Тогда из основной теоремы, мы имеем:Асимптотический анализ с использованием основной теоремы на примере фиктивного объединения
T(n) <= aT(n/b) + O(n^d)
T(n) <= 2T(n/2) + O(n^2)
С a < b^d
, мы находим, что:
T(n) = O(n^d)
T(n) = O(n^2)
Однако, интуитивно, он также имеет смысл, что большая O будет T(n) = O(n^2 logn)
, поскольку каждая рекурсия будет выполнять квадратный (n^2
) поиск по номерам. Например, в случае линейного поиска сортировка слиянием равна O(n logn)
. Кто-нибудь знает, почему граница не O(n^2 logn)
? Может ли это быть связано с тем, что поиск сокращается наполовину на каждой рекурсии?
, но это не объясняет, почему случай для b = 2, d = 1 является O (n log n) –
@willywonkadailyblah: Мой ответ не пытается объяснить Мастер-теорему. Он просто пытается интуитивно объяснить временные сложности двух вариантов сортировки слияния, чтобы ответить на исходный вопрос «Почему« O (n^2) »вместо« O (n^2 logn) »?» – wookie919