2016-09-05 21 views
5
While(n>=1) 
{ 
    n=n/20; 
    n=n/6; 
    n=10×n; 
    n=n-10000; 
} 

tôi đã cố gắng như thế này =>Độ phức tạp của mã đã cho là bao nhiêu?

Trong vòng này, N bị giảm đi N/12 - 10000. như vậy, thời gian phức tạp là O (log N).

+1

Nếu bạn có ý tưởng về độ phức tạp, bạn có thể tính giá trị cụ thể cho một số n và so sánh biểu đồ kết quả với độ phức tạp giả định. Nếu cả hai đồ thị là tương tự nhau, bạn có thể bắt đầu tìm thấy một chứng minh tại sao giả định của bạn là chính xác. – MrSmith42

+0

cảm ơn! tôi sẽ ghi nhớ điều đó trong đầu – Garrick

+1

Vui lòng không đăng câu hỏi về cơ bản cùng một vài giờ một lần (http://stackoverflow.com/questions/39324836/what-is-the-time-complexity-of-given-code) . Bạn có thể muốn đọc phần Hỏi & Đáp tổng quát hơn trước tiên, như: http://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm – m69

Trả lời

6

Điều đó có vẻ đúng. Nếu đây là một bài tập, bạn nên chuẩn bị để tranh luận lý do tại sao O(log_12(N))O(log(N)).

+1

Các căn cứ logarit không theo thứ tự tăng trưởng : logarit đến các căn cứ khác nhau khác nhau bởi các yếu tố không đổi – Garrick

+1

Có, nhưng bạn có thể chứng minh rằng toán học? – mort

+0

Tôi không biết nơi tôi nhận được sai nhưng tại sao không phải là nó O (log (N + hằng số)) '? – YiFei

Các vấn đề liên quan