Không có một mô hình tính toán nào hoàn toàn thỏa đáng để phân tích các thuật toán một cách đáng buồn, ngay cả trong những gì người ta có thể xem là một thiết lập truyền thống. Đó là giả sử tất cả dữ liệu có thể truy cập dễ dàng và không gian làm việc thực sự không bị ràng buộc.
Máy Turing nhiều băng, chắc chắn về mặt lý thuyết được chỉ định rõ ràng và nhiều thuật toán đã được thiết kế và phân tích trong mô hình này trong nhiều năm qua. Tuy nhiên, đối với một số người, nó không liên quan chặt chẽ đến việc máy tính thực sự hoạt động như thế nào để thực sự là một mô hình tốt để sử dụng trong thế kỷ 21. Mặt khác, mô hình RAM từ đã trở nên phổ biến và dường như nắm bắt chính xác hơn hoạt động của các máy tính hiện đại (hoạt động trên các từ không phải bit, truy cập thời gian liên tục vào các vị trí bộ nhớ). Tuy nhiên, có những khía cạnh ít hơn lý tưởng. Ví dụ, không có mô hình RAM một từ. Trước tiên, người ta phải xác định thao tác nào trên các từ được phép trong thời gian không đổi. Có nhiều lựa chọn cho điều này mà không có câu trả lời duy nhất được chấp nhận. Thứ hai, kích thước từ w thường được đặt để tăng với kích thước đầu vào (ít nhất là nhanh như log (n)) để cho phép bất kỳ mục nào trong bộ nhớ được xử lý bằng số lượng từ không đổi. Điều này có nghĩa là người ta phải tưởng tượng một lớp máy vô hạn mà thuật toán của bạn đang chạy hoặc thậm chí tệ hơn, đó là máy thay đổi khi bạn cung cấp cho nó nhiều dữ liệu hơn. Đây là một suy nghĩ khó hiểu cho những gì tinh khiết nhất trong số các học sinh của tôi ít nhất. Cuối cùng, bạn nhận được một số kết quả phức tạp đáng ngạc nhiên với mô hình RAM từ có thể không liên quan với những người học khi còn là sinh viên. Ví dụ, phép nhân hai số n bit là thời gian O (n) trong mô hình này và chỉ cần đọc trong chuỗi n bit là một hoạt động thời gian tuyến tính bất ngờ. Điều này có nghĩa là người ta phải tưởng tượng một lớp máy vô hạn mà thuật toán của bạn đang chạy hoặc thậm chí tệ hơn, đó là máy thay đổi khi bạn cung cấp cho nó nhiều dữ liệu hơn. Đây là một suy nghĩ khó hiểu cho những gì tinh khiết nhất trong số các học sinh của tôi ít nhất. Cuối cùng, bạn nhận được một số kết quả phức tạp đáng ngạc nhiên với mô hình RAM từ có thể không liên quan với những người học khi còn là sinh viên. Ví dụ, phép nhân hai số n bit là thời gian O (n) trong mô hình này và chỉ cần đọc trong chuỗi n bit là một hoạt động thời gian tuyến tính bất ngờ. Điều này có nghĩa là người ta phải tưởng tượng một lớp máy vô hạn mà thuật toán của bạn đang chạy hoặc thậm chí tệ hơn, đó là máy thay đổi khi bạn cung cấp cho nó nhiều dữ liệu hơn. Đây là một suy nghĩ khó hiểu cho những gì tinh khiết nhất trong số các học sinh của tôi ít nhất. Cuối cùng, bạn nhận được một số kết quả phức tạp đáng ngạc nhiên với mô hình RAM từ có thể không liên quan với những người học khi còn là sinh viên. Ví dụ, phép nhân hai số n bit là thời gian O (n) trong mô hình này và chỉ cần đọc trong chuỗi n bit là một hoạt động thời gian tuyến tính bất ngờ.
Đã nói tất cả những điều đó, nếu bạn chỉ muốn biết liệu thuật toán của bạn có khả năng chạy nhanh hay không, thì rất có thể sẽ làm được :-)