Sobes.tech
Junior

Dizi ile liste arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Dizi sabit bir boyuta sahiptir, oluşturulurken belirlenir. Liste, öğeler eklenip çıkarıldıkça dinamik olarak boyutunu değiştirir.

Diziye erişim indeks kullanılarak O(1) sürede yapılır. Listeye erişim ise değişkenlik gösterebilir, örneğin, tek bağlı liste indeks erişimini O(n) sürede sağlar, ArrayList ise ortalama O(1) sürede erişim sağlar.

Bir dizide, öğeler sürekli bellek alanlarında saklanır, bu da daha iyi önbellek performansı sağlar. Listede ise öğeler bellek içinde dağınık olabilir, göstericilerle bağlıdır.

Dizide, ortadaki ekleme ve silme işlemleri tüm sonraki öğelerin kaydırılmasını gerektirir, bu maliyetli olabilir (O(n)). Listelerde ise bu işlemler daha verimli olabilir (örneğin, bağlı listelerde, gösterici varsa O(1), aksi takdirde arama için O(n)). Ancak, göstericilerin güncellenmesi gerekir.

Diziler, temel veri tiplerini doğrudan saklayabilir. Listeler ise genellikle nesne referanslarını tutar (ilkel tipler için sarmalayıcılar).

// Dizi örneği
int[] dizi = new int[5];
dizi[0] = 10; // Erişim O(1)

// ArrayList örneği (Java'da liste)
import java.util.ArrayList;
import java.util.List;

List<Integer> liste = new ArrayList<>();
liste.add(10); // Ekleme ortalama O(1)
liste.get(0); // Erişim ortalama O(1)
# NumPy dizisi örneği
import numpy as np
dizi = np.array([1, 2, 3]) # Sabit boyut

# Liste örneği
data_listesi = [1, 2, 3]
data_listesi.append(4) # Dinamik boyut

data_listesi[0] # Erişim O(1)

Karşılaştırma:

Özellik Dizi Liste
Boyut Sabit Dinamik
İndeks ile erişim O(1) Değişken (genellikle O(1) veya O(n))
Bellek Sürekli bellek alanları Dağınık olabilir
Ekleme/Silme O(n) ortada Değişken (O(1) olabilir)
Veri tipleri İlkel ve nesne Genellikle nesne referansları