Her şey yineleme yaparken ne tür bir işlem yaptığınıza bağlıdır, tüm veri yapıları zaman ve bellek arasında değiş tokuş yapar ve ihtiyaçlarımıza bağlı olarak doğru DS'yi seçmeliyiz. Bu yüzden LinkedList'in diziden daha hızlı ve tersi olduğu bazı durumlar vardır. Veri yapıları üzerindeki üç temel işlemi düşünün.
Dizi, dizin tabanlı veri yapısı olduğundan, array.get (index), directory, dizin DS'si değilken O (1) zaman alacaktır; bu nedenle, dizin <= n, n, bağlantılı listenin boyutudur, Böylece elemanlar rastgele erişime sahip olduğunda dizi bağlantılı liste daha hızlıdır.
S. Peki bunun arkasındaki güzellik nedir?
Diziler bitişik bellek blokları olduğundan, ilk erişim üzerine büyük parçalar önbelleğe yüklenir, bu da dizi lokasyonundaki öğelere eriştiğimiz sürece dizinin kalan elemanlarına erişmeyi nispeten hızlı hale getirir. özlüyorsa, Önbellek konumu önbellekteki işlemleri ifade eder ve bu nedenle bellekte olduğundan çok daha hızlı yürütülür, Temelde Dizide sıralı eleman erişiminin önbellekte olma olasılığını en üst düzeye çıkarırız. Bağlantılı listelerin bitişik bellek bloklarında olması gerekmemekle birlikte, listede sıralı olarak görünen öğelerin aslında bellekte birbirinin yanında düzenlendiği garantisi yoktur;
Bu, LinkedList'te kolay ve hızlıdır, çünkü ekleme, LinkedList'te (Java'da) diziye kıyasla O (1) işlemidir, dizi dolu olduğunda durumu düşünün, dizi dolduğunda içeriğin yeni diziye kopyalanması gerekir. öğeyi en kötü durumda ArrayList of O (n) içine alırken, dizinin sonuna dışında herhangi bir yere eklerseniz ArrayList'in dizinini güncellemesi gerekir, bağlantılı listenin yeniden boyutlandırılması gerekmiyorsa, sadece işaretçiler güncelleme.
LinkedList'de eklemeler gibi çalışır ve diziden daha iyidir.