Tính độ phức tạp thuật toán

image
cho e hỏi độ phức tạp của hàm này tính như thế nào ạ?

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

Là tính O() của thuật toán ở trên ấy ạ

1 Like

Theo như thuật toán bạn đưa ra thì giá trị của s sẽ nằm trong series:
0 1 3 6 10 15 21 28 … n

Với n:
n = 1 -------------- 1 loop
n = 2 -------------- 1 loop
n = 3 -------------- 2 loop

n = 10 ------------- 5 loop
n = xxx ------------ i loop

Mình không tìm được công thức độ phức tạp cụ thể cho phương trình trên, nên mình cho max boundary của nó là O(n), dù nó chỉ chạy i loop.

1 Like

S_i = 1 + 2 + 3 + ... + i = \frac{i(i+1)}{2}
Thoát khỏi vòng lặp chỉ khi S_i > n vậy S_{i-1} \leq n.
\forall n\geq 0\ \exists i \in \N^*,\ i(i-1) \leq 2n < i(i+1)
Từ đó suy ra i.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?