Junior — Middle
Milline on dünaamilise massiivi elemendi lisamise operatsiooni ajakulud?
sobes.tech AI
Vastus AI-lt
Dünaamilise massiivi elemendi lisamine tavaliselt omab amortiseeritud ajakulu keerukust O(1).
Selgitus:
- Kui massiivis on vaba ruumi, lisatakse element konstantses ajas.
- Kui ruumi pole, eraldab massiiv uue suurema mäluploki (tavaliselt kahekordse suurusega), kopeerib vanad elemendid ja lisab uue.
Kuigi laiendamise operatsioon võtab aega O(n), toimub see harva, seega lisamise keskmine (amortiseeritud) keerukus jääb O(1).
Näide Go keeles kasutades slices:
var arr []int
arr = append(arr, 10) // elemendi lisamine
append automaatselt laiendab slices, kui see on vajalik.