Junior — Middle
Millistes olukordades võib elemendi lisamine ArrayListi lõppu omada ajakompleksust O(n)?
sobes.tech AI
Vastus AI-lt
Elementi lisamise ArrayListi lõppu tavaliselt on amortiseeritud ajakava keerukus O(1), kuid mõnel juhul võib see olla O(n). See juhtub, kui sisemine massiiv, mis hoiab elemente, on täis ja seda tuleb laiendada.
Uue elemendi lisamisel:
- Kui ruumi on, lisatakse element lihtsalt — O(1).
- Kui ruumi ei ole, luuakse uus suurem massiiv (tavaliselt 1,5-2 korda suurem), ja kõik olemasolevad elemendid kopeeritakse uude massiivi — see operatsioon on O(n).
Seega võib elemendi lisamine olla O(n) just siis, kui sisemine massiiv laieneb.