Am un set de liste de evenimente. Evenimentele se întâmplă întotdeauna într-o anumită ordine, dar nu fiecare eveniment se întâmplă întotdeauna. Iată un exemplu de intrare:
[[ do, re, fa, ti ],
[ do, re, mi ],
[ do, la, ti, za ],
[ mi, fa ],
[ re, so, za ]]
Valorile de intrare nu au nici o ordine inerentă. Sunt de fapt mesaje cum ar fi „crearea de legături simbolice“ și „Reindexare căutarea“. Ei sunt sortate în lista individuale, dar nu există nici o modalitate de a privi numai „fa“ din prima listă și „mi“ în a doua și a determina care vine înaintea celuilalt.
Aș vrea să fie în măsură să ia această intrare și de a genera o listă sortată a tuturor evenimentelor:
[ do, re, mi, fa, so, la, ti, za ]
sau mai bine încă, unele informații despre fiecare eveniment, cum ar fi un număr de:
[ [do, 3], [re, 3], [mi, 2],
[fa, 2], [so, 1], [la, 1],
[ti, 1], [za, 2] ]
Există un nume pentru ceea ce fac? Există algoritmi acceptat? Scriu acest lucru în Perl, în cazul în care contează, dar pseudocod va face.
Știu că exemplul dat de intrare meu, eu , probabil , nu poate fi garantată de ordinul „dreapta“. Dar intrarea mea reală are de tone mai mult datapoints, și mă simt încrezător că , cu unele ingeniozitate va fi de 95% din dreapta (care este într - adevăr tot ce am nevoie). Pur și simplu nu vreau să re-inventeze roata dacă nu trebuie.













