Câu trả lời:
Khi thực hiện các phép tính phức tạp, chúng ta thường sử dụng mô hình RAM . Trong mô hình này, chúng tôi giả sử rằng lập chỉ mục mảng là O (1). Câu lệnh gán giống như gán một số giá trị cho một số mảng biến của biến . Điều này chỉ để thuận tiện. Nó đơn giản hóa việc phân tích thuật toán. Trong lập chỉ mục mảng trong thế giới thực mất O (log I) trong đó tôi là số thứ được lập chỉ mục.
Chúng tôi thường xem xét những thứ phụ thuộc vào kích thước của đầu vào, ví dụ như các vòng lặp. Ngay cả khi có hoạt động O (1) trong vòng lặp và nó được thực hiện n lần thì thuật toán vẫn chạy trong thời gian O (n).
Nhưng hoạt động O (1) bên ngoài vòng lặp chỉ mất thời gian không đổi và O (n) + O (1) = O (n).
Đọc về thuật toán sắp xếp cơ số từ CLRS.
Mục tiêu cuối cùng là "thời gian thực hiện tính bằng giây" hoặc nói chung là (bỏ qua các tính năng CPU hiện đại) "số chu kỳ xung nhịp". Hóa ra, điều này thật khó để phân tích, và nó cũng là máy hoặc ít nhất là tập lệnh cụ thể. Do đó, nó thường không được thực hiện.
Mức độ trừu tượng tiếp theo là tính chính xác tất cả các hoạt động (của một số mã giả kiểu lắp ráp), giữ chi phí hoạt động riêng lẻ (trong chu kỳ đồng hồ) làm tham số. Lưu ý rằng phân tích như vậy được tìm thấy trong "Nghệ thuật lập trình máy tính" của Knuth, vì vậy chắc chắn có một cách tiếp cận kiểu này, mặc dù nó khó và có xu hướng khó hơn khi có sự phân cấp bộ nhớ.
-analysis"). Lý do là thời gian chạy bị ràng buộc để hành xử không có triệu chứng giống như số lượng các hoạt động được thực hiện thường xuyên nhất, nhân một số yếu tố tùy thuộc vào việc thực hiện thực tế và máy. Kiểu phân tích này mang lại kết quả chung áp dụng cho tất cả các máy (được bao phủ bởi mô hình RAM) và dễ thực hiện hơn so với ở trên. Nó có thể, tuy nhiên, thiếu cụ thể.
Bỏ lại các khung "cổ điển" phía sau, nhiều thuật toán bị chi phối bởi bộ nhớ và / hoặc chi phí liên lạc, do đó, trong trường hợp đó, việc đếm số lượng và khối lượng bộ nhớ sẽ tăng thêm. truyền mạng là hợp lý (và có thể đủ).
Hơn nữa, hãy nhớ rằng chúng ta thường không quan tâm đến hiệu suất tuyệt đối của một thuật toán mà là so sánh nó với các thuật toán khác. Điều này cũng có thể thông báo sự lựa chọn của tham số được phân tích.
Vì vậy, bạn thấy, không có một câu trả lời chắc chắn. Tùy thuộc vào các mục tiêu của phân tích trong tay, các câu trả lời khác nhau có thể được đưa ra.
Xem thêm câu trả lời của tôi ở đây để biết một số suy nghĩ liên quan và câu trả lời của Sebastian trên Quicksort là một ví dụ.