Ich frage mich, was ist die Laufzeit für add(index,E)
Methode von Java ArrayList
. Laut der javadoc amortisiert sich die Laufzeit für den Add-Vorgang O(1)
. Aber in der Beschreibung von add(index,E) heißt das.Was ist die Laufzeit für das Einfügen eines Elements in einen Index der arrayList?
Fügt das angegebene Element an der angegebenen Position in dieser Liste ein. Verschiebt das Element, das sich momentan an dieser Position befindet (falls vorhanden) und alle nachfolgenden Elemente nach rechts (addiert eins zu ihren Indizes).
So sieht es aus wie O(N)
. Ich fragte mich, wofür wir handeln müssten, wenn die Laufzeit für diesen Vorgang O(1)
wäre. Gibt es irgendwelche Amortisationsarbeiten, die durchgeführt werden können, um diese Operation O(1)
durchzuführen und die Laufzeit für eine andere Operation zu opfern?
Ich lese, dass Java ArrayList
von Arrays unterstützt wird, würde die Datenstruktur Hilfe ändern?
[reguläre hinzufügen] (http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#add (E)) ist amortisiert O (1), [add at Index ] (http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#add%28int,%20E%29) ist amortisiert O (N) –