Verständnis und Berechnung der amortisierten Kosten von dynamischen Array-Operationen

Dynamische Arrays sind Datenstrukturen, die sich automatisch verkleinern, wenn sie ihre Kapazität erreichen. Das Verständnis ihrer amortisierten Kosten hilft, ihre Effizienz über mehrere Operationen hinweg zu bewerten.

Was sind amortisierte Kosten?

Die amortisierten Kosten sind die durchschnittlichen Kosten pro Operation über eine Abfolge von Operationen, die die hohen Kosten der gelegentlichen Größenänderung ausgleichen, indem sie auf viele kostengünstige Operationen verteilt werden.

Dynamische Array-Operationen

Übliche Operationen bei dynamischen Arrays umfassen das Einfügen, Löschen und Größenänderung. Das Einfügen am Ende ist typischerweise die häufigste Operation, die bei Überschreitung der Kapazität eine Größenänderung auslösen kann.

Berechnung der amortisierten Kosten

Beim Einfügen von Elementen verdoppelt sich die Größe des Arrays, wenn es voll ist. Die Kosten für die Größenänderung bestehen darin, alle vorhandenen Elemente in das neue Array zu kopieren. Obwohl eine Größenänderung kostspielig ist, tritt sie selten auf.

Wenn ein Array beispielsweise mit Kapazität 1 beginnt, kann die Reihenfolge der Größenänderungskosten über mehrere Einfügungen wie folgt zusammengefasst werden:

Die Gesamtkosten über n Insertionen sind proportional zu 2n, wodurch die amortisierten Kosten pro Insertion ungefähr O(1) betragen.