Ben bir CS öğrencisi bile değilim, bu yüzden aptalca bir soru olabilir, ama lütfen yanımda ol ...
Bilgisayar öncesi çağda, yalnızca bir dizi çekmeceye benzer bir şeyle bir dizi veri yapısını uygulayabiliriz. Biri değeri çıkarmadan önce çekmeceyi karşılık gelen indeks ile konumlandırması gerektiğinden, dizi aramasının zaman karmaşıklığı , ikili arama varsayılır.
Ancak, bilgisayarların icadı büyük bir fark yarattı. Modern bilgisayarlar RAM'lerinden o kadar hızlı okuyabilirler ki, şimdi dizi aramasının zaman karmaşıklığını olarak görüyoruz (teknik olarak bile geçerli değil, çünkü kayıt defterini daha büyük bir mesafeye taşımak daha fazla zaman alıyor, vs.)
Diğer bir örnek Python sözlükleridir. Bir kişi kötü yazılmış bir aşırı sihirli yöntemle (veya gülünç derecede kötü bir şans, yani çok fazla karma çarpışma olan anahtarlar nin sözlük erişiminin karmaşıklığına sahip olsa da, genellikle olduğu varsayılmaktadır . Bu durumda, zaman karmaşıklığı hem Python sözlüklerinin karma tablo uygulamasına ve anahtarların karma fonksiyonlarının uygulanmasına bağlıdır.0 ( 1 )__hash__
Bu, donanım / uygulamanın algoritmaların zaman karmaşıklığını etkileyebileceği anlamına mı geliyor? (Her iki örnek de algoritmalar yerine veri yapılarıyla ilgili olsa da, ikincisi eskisi üzerine kuruludur ve veri yapılarının zaman karmaşıklığını hiç duymadım, bu yüzden burada "algoritmalar" terimini kullanıyorum)
Bana göre algoritmalar soyut ve kavramsal, zaman / mekan karmaşıklığı gibi özellikleri belirli bir şekilde uygulanıp uygulanmadıklarından etkilenmemeli, değil mi?