2 vòng lặp lồng nhau độ phức tạp là O(n^2)?


mọi người ơi, cho mình hỏi cách làm câu này với, mình tưởng độ phức tạp tồi nhất của nó là O(n^2) vì nó có 2 vòng lặp lồng nhau chứ. Nhưng kết quả đúng lại là O(n). Giải thích giúp mình với, mình cảm ơn nhiều

giả sử mảng a đã được sắp xếp giảm dần, vòng lặp while được thực hiện n lần, lúc đó k > n, những lần lặp tiếp theo của vòng for sẽ không chạy khối lệnh trong vòng lặp while nữa.

3 Likes

người ta nói là xét trường hợp tồi nhất mà bạn. Vậy ý bạn là khi mảng a sắp xếp giảm dần thì là trường hợp tồi nhất, tại sao lại vậy nhỉ…Bạn có thể giải thích dõ hơn được ko

k ban đầu bằng 1, bên trong vòng lặp, k được tăng 1 cho đến khi k>n => k=k+1 chỉ được thực hiện tối đa n lần => độ phức tạp cũng chỉ là O(n).

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