Я сьогодні дізнався, що алгоритм аналізу відрізняється на основі обчислювальної моделі. Це те, про що я ніколи не думав і не чув.
Приклад, поданий мені, що ілюстрував це далі, користувачем @chi :
Наприклад, розгляньте завдання: задане повернення x i . У оперативній пам'яті це можна вирішити в O ( 1 ), оскільки доступ до масиву є постійним часом. Використовуючи TM, нам потрібно сканувати весь вхід, так що це O ( n )
Це змушує мене замислитися над функціональними мовами; З мого розуміння, "Функціональні мови тісно пов'язані з обчисленням лямбда" (з коментаря Ювала Філімуса тут ). Отже, якщо функціональні мови базуються на лямбдальному обчисленні, але вони працюють на машинах, що базуються на оперативній пам'яті, який правильний спосіб провести аналіз складності алгоритмів, реалізованих за допомогою суто функціональних структур даних та мов?
У мене не було можливості читати чисто функціональні структури даних, але я переглянув сторінку Вікіпедії для цієї теми, і, схоже, деякі структури даних замінюють традиційні масиви на:
"Масиви можна замінити картою або списком випадкового доступу, що допускає чисто функціональну реалізацію, але час доступу та оновлення є логарифмічним."
У такому випадку обчислювальна модель була б іншою, правильно?