Не існує жодної повністю задовільної обчислювальної моделі, в якій би сумно аналізувати алгоритми, навіть у тому, що можна вважати традиційним. Тобто, якщо всі дані легко доступні, а робочий простір фактично не обмежений.
Мульти-стрічковий апарат Тьюрінга, безумовно, теоретично добре визначений, і багато алгоритмів були розроблені та проаналізовані в цій моделі протягом багатьох років. Однак дехто це не стосується достатньо близько до того, як працюють справжні комп’ютери, щоб справді бути хорошою моделлю, яку можна використовувати у 21 столітті. З іншого боку, модель Word-RAM набула популярності і, схоже, більш точно відображає роботу сучасних комп’ютерів (операції над словами, не бітами, постійний доступ у часі до пам'яті). Однак є аспекти, які є менш ідеальними. Наприклад, немає жодної слова RAM-моделі. Спершу слід вказати, які операції над словами слід дозволити в постійний час. Існує безліч варіантів цього без єдиної прийнятої відповіді. По-друге, розмір слова w, як правило, встановлюється з ростом вхідного розміру (щонайменше так само швидко, як log (n)), щоб дозволити адресувати будь-який елемент у пам'яті за допомогою постійної кількості слів. Це означає, що треба уявити нескінченний клас машин, на яких працює ваш алгоритм, або ще гірше, що машина змінюється, коли ви подаєте їй більше даних. Це неприємна думка як мінімум для найчистіших серед моїх студентів. Нарешті, ви отримуєте дещо дивовижні результати складності за допомогою слова RAM-моделі, яка може не співпадати з тими, хто навчається студентом. Наприклад, множення двох n-бітних чисел є O (n) часом у цій моделі, а просто читання в n-бітовій рядку - це раптово підлінійна операція часу. Це означає, що треба уявити нескінченний клас машин, на яких працює ваш алгоритм, або ще гірше, що машина змінюється, коли ви подаєте їй більше даних. Це неприємна думка як мінімум для найчистіших серед моїх студентів. Нарешті, ви отримуєте дещо дивовижні результати складності за допомогою слова RAM-моделі, яка може не співпадати з тими, хто навчається студентом. Наприклад, множення двох n-бітних чисел є O (n) часом у цій моделі, а просто читання в n-бітовій рядку - це раптово підлінійна операція часу. Це означає, що треба уявити нескінченний клас машин, на яких працює ваш алгоритм, або ще гірше, що машина змінюється, коли ви подаєте їй більше даних. Це неприємна думка як мінімум для найчистіших серед моїх студентів. Нарешті, ви отримуєте дещо дивовижні результати складності за допомогою слова RAM-моделі, яка може не співпадати з тими, хто навчається студентом. Наприклад, множення двох n-бітних чисел є O (n) часом у цій моделі, а просто читання в n-бітовій рядку - це раптово підлінійна операція часу.
Сказавши все це, якщо ви просто хочете дізнатися, чи ваш алгоритм, швидше за все, працює швидко, або зробить найімовірніше :-)