Всем здравствуйте!
Есть несколько последовательностей неповторяющихся цифр:
а) 1, 2, 6
б) 3, 2
в) 3, 4, 5
г) 1, 3, 5, 4
задача: требуется создать алгоритм определения результирующей последовательности, в которой могли разместиться большинство из данных последовательностей. То есть, что бы порядок следования цифр в результирующей не нарушал порядка цифр составляющих (последовательностей).
Например, для приведеных последовательностей чисел результирующая последовательность может состоять из (а,б,в) вариантов и будет выглядеть так - (1 3 2 4 5 6).
Кроме этого, возможен еще один вариант результирующей последовательности, состоящий из вариантов
(а,б,г) - (1 3 2 5 4 6)
Поиск результирующей последовательности будет основываться на полном переборе всех данных.
Алгоритм представляю себе следующим образом:
1. Последовательность №1 будет взята за результирующую.
2. Проводится сравнение со последовательностью №2. Если порядок следования чисел не противоречит пос-ти №1 - разместить в результирующей числа из 2ой.
Если порядок следования чисел различный (как в (в) и (г)), создать еще одну результирующую последовательность.
3. Проверить следующий номер последовательности на соответствие с имеющимися результирующими после-ми (перейти к п1.)
Результирующая последовательность с максимальным количеством после-тей, которые в ней смогли разместиться будет представлять результат решения задачи.
Подскажите, пожалуйста, не будет ли такой алгоритм поиска (перебора) медленным, если число последовательностей может достигать сотен тысяч, а количество цифр в каждой последовательности может колебаться от 2ух до 30, при этом количество результирующих последовательностей может достигать 0%-30% от всех имеющихся последовательностей?
Может я велосипед изобретаю?