Junior — Middle
Dinamik bir dizinin başına veya ortasına öğeler ekleme işleminin zaman karmaşıklığı nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Dinamik bir dizinin başlangıcına veya ortasına bir öğe ekleme işleminin zaman karmaşıklığı genellikle O(n) olup, burada n dizideki öğe sayısıdır.
Bu, eklemeden sonra tüm sonraki öğelerin sağa doğru bir konum kaydırılması gerektiği anlamına gelir, böylece yeni öğe için yer açılır. En kötü durumda, başlangıca ekleme yapıldığında, tüm öğeler kaydırılır.
Go dilinde örnek:
package main
import "fmt"
func insertAt(slice []int, index int, value int) []int {
slice = append(slice, 0) // dilimi büyütüyoruz
copy(slice[index+1:], slice[index:]) // öğeleri kaydırıyoruz
slice[index] = value // değeri ekliyoruz
return slice
}
func main() {
s := []int{1, 2, 3, 4}
s = insertAt(s, 1, 99) // 99'u konum 1'e ekle
fmt.Println(s) // [1 99 2 3 4]
}