Hallo Yalu,
Yalu X. schrieb:
> Mit einer Hashtabelle geht es evtl. noch schneller, unter günstigen
> Bedingungen in O(n).
ohne weitere Erklärung ist diese Behauptung verwirrend.
Vermutlich willst Du alle Elemente der Reihe nach in einem Bitfeld
aushaken, dass so groß ist wie der Wertebereich der Hashs, die sich auch
für Dich in O(1) berechnen lassen müssen.
Dann ist der Bearbeitungsaufwand minimal [ O(1) ], weil Du für jedes
Element nur nachprüfen musst, ob seine Position im Bitfeld schon gesetzt
ist.
Du tauschst dann allerdings Rechenzeit gegen Speicherplatz ein.
Allerdings gibt es auch keine Gewähr dafür, dass Dein Bitfeld in einem
Stück im Speicher liegt und der Aushakvorgang nur O(1) dauert.
Die O-Notation zielt ja auf große n ab.
Von daher bezweifele ich jede Laufzeitangabe, die schneller ist als
O(n*log(n)).
Der günstigste Fall ist ja eigentlich nicht der interessanteste, sondern
eher der schlechteste Fall oder der mittlere...