Задача о наибольшей возрастающей подпоследовательности
Версия от 09:44, 27 ноября 2010; 192.168.0.2 (обсуждение)
| Определение: |
| Наибольшая возрастающая подпоследовательность (англ. Longest increasing subsequence - LIS) строки длины - это последовательность символов строки таких, что и - наибольшее из возможных. |
Задача заключается в том, чтобы отыскать это наибольшее и саму подпоследовательность. Известно несколько алгоритмов решения этой задачи.
Пример алгоритма, работающего за время
Строим таблицу - длина наибольшей возрастающей подпоследовательности, оканчивающейся точно в позиции . Если мы построим эту таблицу, то ответ к задаче - наибольшее число из этой таблицы. Само построение тоже элементарно: , , среди всех j < i, для которых Mj < Mi. Перый элемент A1 = 1, что очевидно.