Những gì được coi là một hoạt động?


8

Xin lỗi cho câu hỏi của người mới, nhưng tôi hơi bối rối về những gì chính xác được coi là một "hoạt động đơn giản" khi làm việc phức tạp về thời gian của một thuật toán. Cụ thể, tại sao chúng ta coi tất cả các hoạt động là như nhau?

Chắc chắn, việc chia hai số rất lớn sẽ tốn nhiều thời gian hơn so với việc thêm một cho một số (như trong mỗi lần lặp của một vòng lặp for). Phép nhân, ví dụ, có thể bao gồm bất kỳ số lượng bổ sung nhỏ nào. Vì vậy, thay vì chỉ thêm chúng, chúng ta không nên áp dụng một số loại trọng lượng cho từng thao tác tùy thuộc vào loại hoạt động (cộng, nhân, v.v.) và kích thước của các con số liên quan?

Vấn đề của tôi là tôi đang được yêu cầu chứng minh rằng độ phức tạp của thuật toán của tôi là (đối với một số hàm ) và tôi không chắc chắn làm thế nào để thực hiện điều này một cách chặt chẽ về mặt toán học vì sự mơ hồ vốn có trong định nghĩa của một "hoạt động đơn giản". Vì vậy, làm thế nào tôi sẽ đi về điều này?Ôi(f)f



@DW Không ai trong số đó là bản sao? (Tôi muốn nói, tất cả bọn họ.)
Raphael

Câu trả lời:


1

Hoạt động đơn giản là bất cứ điều gì cần thời gian liên tục để đạt được. Sự nhầm lẫn là sự phân chia dường như không mất thời gian liên tục, và trên thực tế, nói chung, nó không. NHƯNG!

Cả hai phép chia và phép cộng đều mất thời gian liên tục nếu, giả sử, bạn đang thêm hai số nguyên 32 bit với nhau, thường là cách nó diễn ra. Tuy nhiên, nếu bạn thêm các số lớn tùy ý, chúng sẽ không thực sự là thời gian không đổi, mặc dù đôi khi tôi nghĩ mọi người sẽ coi nó như thể đó là vì các số đó được coi là không lớn.


1
Ôi(đăng nhậpn)n
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.