Sobes.tech
Junior — Middle

Dinamik massivning boshiga yoki o'rtasiga elementlar qo'shish operatsiyasining vaqt murakkabligi qanday?

sobes.tech AI

AIdan javob

Dinamik massivning boshiga yoki o'rtasiga element qo'shish operatsiyasining vaqt murakkabligi odatda O(n), bu yerda n massivdagi elementlar sonidir.

Bu shundan iboratki, qo'shishdan so'ng, keyingi barcha elementlarni o'ngga siljitish kerak, yangi element uchun joy bo'shatish uchun. Eng yomon holatda, boshiga qo'shilganda, barcha elementlar siljiydi.

Go tilida misol:

package main

import "fmt"

func insertAt(slice []int, index int, value int) []int {
    slice = append(slice, 0)           // slice ni kengaytiramiz
    copy(slice[index+1:], slice[index:]) // elementlarni siljitamiz
    slice[index] = value               // qiymatni qo'shamiz
    return slice
}

func main() {
    s := []int{1, 2, 3, 4}
    s = insertAt(s, 1, 99) // 99 ni 1-pozitsiyaga qo'shish
    fmt.Println(s)        // [1 99 2 3 4]
}