Ich habe eine Reihe von Listen von Ereignissen bekommt. Die Ereignisse geschehen immer in einer bestimmten Reihenfolge, aber nicht jedes Ereignis passiert immer. Hier ist ein Beispiel-Eingang:
[[ do, re, fa, ti ],
[ do, re, mi ],
[ do, la, ti, za ],
[ mi, fa ],
[ re, so, za ]]
Die Eingangswerte haben keine inhärente Reihenfolge. Sie sind eigentlich Meldungen wie „Erstellen von symbolischen Links“ und „reindexing Suche“. Sie sind in den einzelnen Liste sortiert, aber es gibt keine Möglichkeit, nur zu schauen ‚fa‘ in der ersten Liste und ‚mi‘ in der zweiten und bestimmen, welche vor dem anderen kommt.
Ich möchte in der Lage sein , dass die Eingabe zu nehmen und eine sortierte Liste generiert alle Ereignisse:
[ do, re, mi, fa, so, la, ti, za ]
oder besser noch, einige Informationen über jedes Ereignis, wie eine Zählung:
[ [do, 3], [re, 3], [mi, 2],
[fa, 2], [so, 1], [la, 1],
[ti, 1], [za, 2] ]
Gibt es einen Namen für das, was ich tue? Gibt es akzeptiert Algorithmen? Ich schreibe dies in Perl, wenn es ankommt, aber Pseudo-Code tun wird.
Ich weiß , dass mein Beispiel Eingabe gegeben, wahrscheinlich kann ich nicht von der „richtigen“ Reihenfolge garantiert werden. Aber mein wirklicher Eingang hat Tonnen mehr Datenpunkte, und ich bin zuversichtlich , dass es mit etwas Geschicklichkeit 95% richtig sein wird (was wirklich alles , was ich brauche). Ich will einfach nicht , das Rad neu erfinden , wenn ich nicht zu tun haben.













