Bugün algoritma analizinin hesaplama modeline göre değiştiğini öğrendim . Hiç düşünmediğim ya da duymadığım bir şey.
User @chi tarafından daha fazla örnek veren bana verilen bir örnek :
Örneğin şu görevi göz önünde bulundurun: verilen x i döndürür . RAM'de, dizi erişimi sabit zaman olduğundan bu O ( 1 ) olarak çözülebilir . TM'leri kullanarak, tüm girişi taramamız gerekir, bu yüzden O ( n )
Bu bana işlevsel dilleri merak ediyor; Anladığım kadarıyla, "İşlevsel diller lambda hesabı ile yakından ilgilidir" (Yuval Filmus'un buraya yaptığı bir yorumdan ). İşlevsel diller lambda hesabına dayalıysa, ancak RAM tabanlı makinelerde çalışıyorlarsa, tamamen işlevsel veri yapıları ve diller kullanılarak uygulanan algoritmalar üzerinde karmaşıklık analizi yapmanın doğru yolu nedir?
Tamamen Fonksiyonel Veri Yapılarını okuma fırsatım olmadı, ancak konuyla ilgili Wikipedia sayfasına baktım ve bazı veri yapılarının geleneksel dizilerin yerini aldığı görülüyor:
"Diziler, yalnızca işlevsel uygulamayı kabul eden harita veya rastgele erişim listesi ile değiştirilebilir, ancak erişim ve güncelleme süresi logaritmiktir."
Bu durumda, hesaplama modeli farklı olurdu, doğru mu?