Per favore, spogliati con me, voglio che questo sia il più indipendente possibile dal linguaggio delle lingue con cui lavoro (una delle quali è un linguaggio chiamato PowerOn). Tuttavia, la maggior parte dei linguang supporta i loop e gli array.
Dire che ho il seguente elenco in un aray:
0x 0 Foo
1x 1 Bar
2x 0 Widget
3x 1 Whatsit
4x 0 Foo
5x 1 Bar
Qualsiasi cosa con un 1 dovrebbe essere aggiunta univocamente a un altro array con il seguente risultato:
0x 1 Bar
1x 1 Whatsit
Ricorda che questo è un esempio molto elementare. In realtà, ho a che fare con decine di migliaia di elementi sulla vecchia lista. Ecco cosa ho finora.
Pseudo codice:
For each element in oldlist
For each element in newlist
Compare
If values oldlist.element equals newlist.element, break new list loop
If reached end of newlist with with nothing equal from oldlist, add value from old list to new list
End
End
C'è un modo migliore per farlo? Algoritmicamente, c'è spazio per miglioramenti? E come bonus qeustion, qual è la notazione O per questo tipo di algoritmo (se ce n'è uno)?