Es gibt eine Hash-Tabelle, Steckplätze in einem Array, jeder Steckplatz hat eine doppelt verknüpfte Liste, unsortiert.Finden Sie maximale Element in Hash-Tabelle mit doppelt verketteten Liste in jedem Steckplatz
Die Gesamtzahl der Elemente ist n
, die Anzahl der Steckplätze ist m
.
Was ist die Zeit, die Komplexität zu:
- Finden Sie das maximale Element in ganz hashtable.
- Finden Sie das Nachfolgerelement für ein gegebenes Element x.
Sie sollten beide O(n)
, richtig sein? Weil Sie jedes Element durchlaufen müssen.
Aber in dem Buch <The algorithm design manual 2nd>
, Seite 90, sagt es, es ist O(n+m)
, aber ich verstehe es nicht.
Jeder, helfen zu sagen, was richtig ist? Und warum.
Danke.
Ist es nicht O (n * m)? Für n Listen mit der Größe m? –
@GiorgiNakeuri - OP hat angegeben, dass die Gesamtzahl der Elemente in der gesamten Tabelle n ist, nicht die Größe jeder Liste. (Es ist m Slots, jeder mit einer Liste von einiger Größe; Gesamtgröße aller Listen ist n.) –
Oh, ich habe die Frage falsch verstanden. –