2010-02-08 36 views

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).
+0

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

+0

Đã 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

+2

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

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