Junior — Middle
Kāda ir dinamiskā masīva elementu ievietošanas operācijas laika sarežģītība sākumā vai vidū?
sobes.tech AI
Atbilde no AI
Dinamiskā masīva sākuma vai vidus elementa ievietošanas operācijas laika sarežģītība parasti ir O(n), kur n ir elementu skaits masīvā.
Tas ir tāpēc, ka pēc ievietošanas visi sekojošie elementi ir jānovieto pa labi par vienu pozīciju, lai atbrīvotu vietu jaunajam elementam. Sliktākajā gadījumā, ievietojot sākumā, tiek pārvietoti visi elementi.
Piemērs Go valodā:
package main
import "fmt"
func insertAt(slice []int, index int, value int) []int {
slice = append(slice, 0) // palielinām sagriezienu
copy(slice[index+1:], slice[index:]) // pārvietojam elementus
slice[index] = value // ievietojam vērtību
return slice
}
func main() {
s := []int{1, 2, 3, 4}
s = insertAt(s, 1, 99) // ievietot 99 pozīcijā 1
fmt.Println(s) // [1 99 2 3 4]
}