Không gian O (1) có nghĩa là gì? Tôi hiểu rằng các bước O (n) giống như thứ tự độ lớn của các phép tính mà thuật toán/chương trình tạo ra, nhưng không biết không gian O (n) là gì.Điều này có nghĩa là: các bước O (n) và không gian O (1)?
26
A
Trả lời
42
O (1) không gian nghĩa là bộ nhớ theo yêu cầu của thuật toán là hằng số, tức là không phụ thuộc vào kích thước của đầu vào.
O (n) không gian có nghĩa là bộ nhớ theo yêu cầu của thuật toán có (trong trường hợp xấu nhất) có cùng thứ tự độ lớn như kích thước của đầu vào.
Sửa: Thêm hai ví dụ:
- sắp xếp nổi bọt đòi hỏi O (1) không gian.
- Mergesort yêu cầu không gian O (n).
2
Về cơ bản "O (n) bước và O (1) không gian" có nghĩa là số bước thực hiện quy mô tuyến tính (O (n)) với số lượng mục, nhưng số lượng bộ nhớ mất là hằng số.
Các vấn đề liên quan
- 1. Biến bit là O (1) hoặc O (n)?
- 2. Ví dụ về các thuật toán có các phức tạp O (1), O (n log n) và O (log n)
- 3. Tìm nếu một mảng là một chuỗi trong thời gian O (n) và O (1)
- 4. Nơi để tìm thấy những gì O (n^2) và O (n) vv có nghĩa là?
- 5. O (log (log (n)))) có nghĩa là gì?
- 6. Tôi có nên xem xét memmove() O (n) hoặc O (1) không?
- 7. Sự khác biệt giữa O (n) và O (log (n)) - cái nào tốt hơn và chính xác là O (log (n)) là gì?
- 8. Bảng băm thực sự có thể là O (1)?
- 9. O (log n) luôn luôn nhanh hơn O (n)
- 10. chứng minh n = Big-O (1) sử dụng cảm ứng
- 11. Haskell: Datastruture với O (1) nối thêm và O (1) lập chỉ mục?
- 12. O (1) tìm kiếm băm?
- 13. Đếm chuỗi con xuôi ngược trong thời gian O (n)
- 14. Ví dụ về O (n!)?
- 15. Trong Java, với chuỗi x, chi phí thời gian chạy của s.length() là bao nhiêu? Có phải O (1) hoặc O (n)?
- 16. Tôi có nghĩ rằng đoạn mã này là O (n^3) không?
- 17. Tại sao độ phức tạp của thuật toán này là O (1)
- 18. Làm thế nào để bạn hình dung sự khác biệt giữa O (log n) và O (n log n)?
- 19. Chuyển đổi heap thành BST trong thời gian O (n)?
- 20. java.lang.Object o = 1; // tại sao biên dịch này?
- 21. Ký hiệu Big Oh O ((log n)^k) = O (log n)?
- 22. tùy chọn -O- có nghĩa là gì đối với wget?
- 23. 1 (mod N) có nghĩa là gì?
- 24. Đệ quy và Big O
- 25. Thời gian chạy của thủ tục nối thêm O (n)?
- 26. C I/O chuẩn và UNIX cơ bản I/O
- 27. Tính trọng lượng Hamming trong O (1)
- 28. Thời gian chạy của thuật toán A ít nhất là O (n²) - Tại sao nó lại vô nghĩa?
- 29. Tại sao mã này được coi là O (N^6) trong ký hiệu Big Oh?
- 30. Một mảng có độ dài N có thể chứa các giá trị 1,2,3 ... N^2. Có thể sắp xếp theo thời gian O (n) không?
vì vậy về cơ bản một cuộc gọi đệ quy thường sẽ là không gian O (n) và một quá trình lặp lại sẽ là O (1) vì bạn không chờ đợi (các) cuộc gọi đệ quy để kết thúc? – Devoted
Đã thêm hai ví dụ phổ biến. Vâng, bạn không thể thực sự tìm thấy các quy tắc chung về phức tạp thuật toán đệ quy và lặp đi lặp lại (nhưng nó có thể khó - không phải không thể - cho một thuật toán đệ quy có O (1) phức tạp không gian). – 3lectrologos
nếu cuộc gọi đệ quy của bạn sử dụng các biến mới mỗi khi được gọi thì có, nó sẽ là không gian O (n). Nếu quá trình lặp của bạn khởi tạo các biến mới trong một vòng lặp mà không giải phóng thì nó cũng sẽ là O (n). Tất cả phụ thuộc vào cách bạn thiết kế và mã hóa thuật toán. – Nikhil