30/09/2018, 18:13

Sắp xếp hàm theo tốc độ tăng

Em vừa học CTDL&GT nhưng mà đang lơ mơ lắm. Mọi người chỉ giúp em với
Đề bài là: Sử dụng big-O để sắp xếp các hàm dưới đây theo tốc độ tăng:

4n, 2^10, 4nlogn + n, 2^n, n^2 + 2n, nlogn, 2^(logn)
Chi Ngo viết 20:19 ngày 30/09/2018

2^10 < 4n < nlogn < 4nlogn + n < n^2 + 2n < 2^logn < 2^n

LazyCat viết 20:19 ngày 30/09/2018

Okie, thank. Nhưng mà cái hàm 2^logn có big-O là cái gì vậy bạn?

Chi Ngo viết 20:20 ngày 30/09/2018

Thì là O(2^log n) mà bạn.

LazyCat viết 20:24 ngày 30/09/2018

Ối, mình quên mất. Cảm ơn nhiều nhé

viết 20:17 ngày 30/09/2018

2^logn lẹ hơn n^2 chứ, thậm chí lẹ hơn cả nlogn. 2^logn là tương đương với O(n) đó.

LazyCat viết 20:21 ngày 30/09/2018

Mình có xem lại, 2^logn, nó còn nhẹ hơn cả n bạn ạ
Với f(n) = n, thì khi n tăng 10 lần, f(n) cũng tăng lên 10 lần. Còn f(n) = 2^logn chỉ tăng lên có 2 lần thôi

viết 20:21 ngày 30/09/2018

log ở đây ta tin là log cơ số 2 chứ ko phải cơ số 10…

Chi Ngo viết 20:28 ngày 30/09/2018

Có lẽ mình nhầm một chút, nên xếp lại thành:
2^10 < 2^logn < 4n < nlogn < 4nlogn + n < n^2 + 2n < 2^n

LazyCat viết 20:21 ngày 30/09/2018

Cảm ơn @tntxtnt @programmerit nhé

Bài liên quan
0