2-D сложность пикового поиска (MIT OCW 6.006)

9

В видео- чтении для MIT OCW 6.006 в 43:30,

Учитывая матрицу размером с столбцами и строками, алгоритм поиска двумерных пиков, в котором пиковое значение представляет собой любое значение, большее или равное соседним соседям, было описано как:m×Nм нAмN

Примечание. Если при описании столбцов через возникает путаница , я приношу свои извинения, но именно так это описывает видео-декламация, и я старался соответствовать этому видео. Это очень смутило меня.N

  1. Выберите средний столбец // Имеет сложностьΘ ( 1 )N/2Θ(1)

  2. Найти максимальное значение столбца // Имеет сложность потому что в столбце строкΘ ( м ) мN/2Θ(м)м

  3. Проверьте горизонт. соседние строки по максимальному значению, если оно больше, чем пик, было найдено, в противном случае рекурсивно с // Имеет сложностьТ ( н / 2 , м )T(N/2,м)T(N/2,м)

Затем, чтобы оценить рекурсию, инструктор декламации говорит

T(1,м)знак равноΘ(м) потому что находит максимальное значение

(Е1)T(N,м)знак равноΘ(1)+Θ(м)+T(N/2,м)

Я понимаю следующую часть, в 52:09 в видео, где он говорит рассматривать как константу, поскольку число строк никогда не меняется. Но я не понимаю, как это приводит к следующему продукту:м

(E2)T(N,м)знак равноΘ(м)Θ(журналN)

Я думаю, что, поскольку обрабатывается как константа, он, таким образом, обрабатывается как и исключается из выше. Но мне трудно прыгнуть на . Это потому, что мы сейчас рассматриваем случай с постоянной ?мΘ(1)(Е1)(Е2)T(N/2)м

Я думаю, что «вижу» общую идею в том, что операция выполняется, в худшем случае, для числа m строк. Я пытаюсь понять, как описать переход от к кому-то еще, т.е. получить реальное понимание.Θ(журналN)(Е1)(Е2)

user52207
источник

Ответы:

1

Насколько я понимаю, требуется (m) времени, чтобы оценить все элементы в данном столбце и определить, какой из этих элементов является глобальным максимумом. Когда приходит Θ ( lg ( n ) ), это то, что в худшем случае алгоритм должен оценить столбцы lg ( n ) в матрице, прежде чем будет найден пик. Общая работа будет тогда Θ ( млн. Гл ( n ) )ΘΘ(Л.Г.(N))Л.Г.(N)Θ(мЛ.Г.(N))

Например, предположим, что ваша матрица имеет 32 столбца и 8 строк.

  1. Вы берете средний столбец, скажем, столбец 16. Вы оцениваете его и обнаруживаете, что глобальный пик столбца заменен элементом справа. Вы отбрасываете столбцы 1-16 и сосредотачиваетесь на столбцах 17-32.
  2. Найдите средний столбец оставшейся матрицы, который является столбцом 24, и вы оцениваете глобальный пик (это ваша оценка второго столбца). Вы обнаружите, что вам нужно двигаться вправо. Оставьте столбцы 17-24, сфокусируйтесь на 25-32.
  3. Найдите середину (столбец 28) - вы оцениваете (третий столбец оценки), и вы обнаружите, что нужно двигаться вправо. Отбросьте столбцы 25 - 28 и сосредоточьтесь на 29 - 32.
  4. Оцените колонку 30 (четвертая оценка), найдите, что вам нужно переместиться вправо, отбросьте колонки 29-30.
  5. Оцените один из оставшихся столбцов (оценка пятого столбца), и все готово.

Л.Г.(32)Л.Г.(N)

ManGI1
источник
2

О(м)мT(N,м)T(N,м)

T(N)знак равноT(N2)+сNT(N)знак равноT(1)+сN(1+12+14+18+)знак равноО(N)

ВЗН
источник
1
Этот ответ, на самом деле, исключен! ОП рассказывает об алгоритме в видео MIT OCW 6.006, в то время как в этом ответе рассказывается о другом алгоритме . В частности, анализ, изложенный OP, является правильным в отношении алгоритма в этом видео.
Джон Л.