У меня есть набор списков событий. События всегда происходят в определенном порядке, но не каждое событие происходит всегда. Вот пример ввода:
[[ do, re, fa, ti ],
[ do, re, mi ],
[ do, la, ti, za ],
[ mi, fa ],
[ re, so, za ]]
Входные значения не имеют какой-либо определенный порядок. Они на самом деле сообщения, как «создание символических ссылок» и «переиндексации поиска». Они сортируются в индивидуальном списке, но нет никакого способа, чтобы смотреть только на «фа» в первом списке и «ми» во втором и определить, предшествует другой.
Я хотел бы быть в состоянии принять , что ввод и генерировать отсортированный список всех событий:
[ do, re, mi, fa, so, la, ti, za ]
или еще лучше, некоторая информация о каждом событии, как кол:
[ [do, 3], [re, 3], [mi, 2],
[fa, 2], [so, 1], [la, 1],
[ti, 1], [za, 2] ]
Есть ли название для того, что я делаю? Существуют ли приняты алгоритмы? Я пишу это в Perl, если это имеет значение, но псевдокод будет делать.
Я знаю , что , учитывая мой пример ввода, я , вероятно , не может быть гарантировано «правильный» порядок. Но мой реальный вход имеет тн больше точек данных, и я уверен , что с некоторой сообразительностью это будет 95% вправо (что на самом деле все , что мне нужно). Я просто не хочу , чтобы заново изобретать колесо , если я не должен.













