Mam zestaw wykazów wydarzeń. Zdarzenia zawsze zdarzają się w określonej kolejności, ale nie każde zdarzenie zawsze się zdarza. Oto wejście przykład:
[[ do, re, fa, ti ],
[ do, re, mi ],
[ do, la, ti, za ],
[ mi, fa ],
[ re, so, za ]]
Wartości wejściowe nie mają wrodzoną zamówienia. Są faktycznie komunikaty takie jak „tworzenie dowiązania” i „reindeksowania wyszukiwanie”. Są one klasyfikowane w indywidualnej liście, ale nie ma sposobu, aby spojrzeć na tylko „fa” w pierwszej listy i „mi” w drugim i określić, która jest przed drugim.
Chciałbym być w stanie przyjąć, że wejście i wygenerować posortowaną listę wszystkich zdarzeń:
[ do, re, mi, fa, so, la, ti, za ]
albo jeszcze lepiej, niektóre informacje o każdym zdarzeniu, jak Count:
[ [do, 3], [re, 3], [mi, 2],
[fa, 2], [so, 1], [la, 1],
[ti, 1], [za, 2] ]
Czy jest nazwa dla tego, co robię? Są tam akceptowane algorytmy? Piszę to w Perlu, czy to ważne, ale pseudokod zrobi.
Wiem, że biorąc pod uwagę mój przykład wejście, prawdopodobnie nie może być zagwarantowane w „prawo” kolejności. Ale moje prawdziwe wejście ma ton więcej punktów danych, a jestem przekonany, że z pewnym sprytem to będzie 95% w prawo (co jest naprawdę wszystko, czego potrzebuję). Ja po prostu nie chcę wymyślać koła, jeśli nie muszę.













