Tôi đang bối rối về cách Big-O hoạt động khi giao dịch với các hàm trong các hàm (khi phân tích trường hợp xấu nhất). Ví dụ, nếu bạn có một cái gì đó như:Phân tích Big-O với các hàm trong hàm
for(int a = 0; a < n; a++)
{
*some function that runs in O(n*log(n))*
for(int b = 0; b < n; b++)
{
*do something in constant time*
}
}
Sẽ này toàn bộ khối chạy trong thời gian O (n^2 * log (n)), bởi vì trong những người đầu tiên cho vòng lặp, bạn có một O (n) và một O (n * log (n)), do đó, O (n * log (n)) là lớn hơn, và do đó chúng ta lấy? Hoặc là nó O (n^3 * log (n)) bởi vì bạn có một O (n) và một O (n * log (n)) trong vòng ngoài cho vòng lặp?
Mọi trợ giúp đều được đánh giá cao! Cảm ơn!
Giải thích tuyệt vời. Cảm ơn! – Mason