Nếu bạn có N = 10, bạn lặp lại sẽ là: 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1. (đây là: mười lần lặp cộng với chín lần lặp cộng với tám lần lặp ... vv).
Bây giờ, bạn cần phải tìm vào việc bổ sung bao nhiêu lần bạn có thể nhận được một N (10 trong ví dụ):
1: (10), 2: (9 + 1), 3: (8 +2), 4: (7 + 3), 5: (6 + 4). Đó là 5 lần ... và dựa trên 5 lần lặp lại.
Bây giờ bạn biết rằng bạn có năm hàng chục + 5:
10 (5) + 5
Về f (n) (hoặc N), chúng ta có thể dễ dàng nhận thấy rằng đây sẽ là:
f (n) = n (n/2) + n/2 = (n^2)/2 + n/2 = (n^2 + n)/2 ... đây chính là độ phức tạp của những vòng lặp lồng nhau.
Nhưng, xem xét hành vi tiệm cận của Big O, chúng ta có thể loại bỏ các giá trị ít quan trọng hơn của f (n), là n và đơn vị mẫu.
Kết quả: O (n^2)
Nguồn
2016-05-14 09:15:53
Xem thêm [Độ phức tạp thời gian của vòng lặp lồng nhau] (http://stackoverflow.com/q/526728/456814). –