Dynaamiset järjestelmät ovat datarakenteita, jotka automaattisesti muuttuvat, kun ne saavuttavat kapasiteetin. Ymmärtämällä niiden kuoletettu kustannus auttaa arvioimaan niiden tehokkuutta yli useita toimintoja.

Mitä on Amortized Cost?

Kustannuksia on keskimäärin kustannukset per toiminta yli sarjan toimintoja. Se tasoittaa korkeat kustannukset satunnaisen uudelleenjako jakamalla niitä moniin edullisiin toimintoihin.

Dynaaminen kaaritoiminta

Dynaamisten matriisien yhteiset toiminnot ovat insertointi, poisto ja uudelleen kokoaminen. Loppuun sijoittaminen on tyypillisesti yleisin toiminto, joka voi laukaista uudelleenjärjestelyn, kun kapasiteetti ylitetään.

Kustannusten laskeminen

Kun lisätään elementtejä, array kaksinkertaistuu koossa, kun täysi. Kustannukset uudelleen kokoaminen sisältää kopioida kaikki olemassa olevat elementit uuteen matriisiin. Vaikka uudelleen kokoaminen on kallista, se tapahtuu harvoin.

Esimerkiksi jos matriisi alkaa kapasiteetilla 1, kustannusten uudelleenjakosarja voidaan tiivistää seuraavasti:

  • Lisätään 1 osa: kustannus 1
  • Lisää toinen osa: kokomuutos (kustannus 1), kokonaiskustannukset 2
  • Lisää kolmas elementti: kokomuutos (kustannus 2), kokonaiskustannukset 3
  • Lisätään neljäs osa: koon muuttaminen (kustannus 4), kokonaiskustannukset 4

Kokonaiskustannukset n sisäänlaskut on suhteessa 2n, joten kuoletettu kustannus insert noin O(1).