Xác định độ phức tạp thời gian của hàm sau:

Bài 25.5. Xác định độ phức tạp thời gian của hàm sau:

Xác định độ phức tạp thời gian của hàm sau:

Bài Làm:

Gọi T(n) là thời gian thực hiện của chương trình. Thời gian chạy của thuật toán được phân tích như sau:

- Lệnh gán tại dòng 2 cần 1 đơn vị thời gian

- Vòng lặp for tại dòng 3, biến i chạy từ 1 đến n, nên vòng lặp có n bước lặp

- Với mỗi bước lặp trên, chương trình thực hiện:

  • Vòng lặp tại dòng 4, biến j chạy từ 1 đến i, nên vòng lặp thực hiện i bước lặp

  • Với mỗi bước lặp:

    • Chương trình thực hiện vòng lặp tại dòng 5, biến k chạy từ j đến j + i, vòng lặp có i + 1 bước lặp.

    • Với mỗi bước lặp chương trình thực hiện 1 lệnh gán tại dòng 6 cần 1 đơn vị thời gian

- Lệnh trả về tại dòng 7 cần 1 đơn vị thời gian

Tổng hợp lại, hàm trên có thời gian chạy là:

$T(n)=2+\sum_{i=1}^{n}\sum_{j=1}^{i}(i+1)=2+\sum_{i=1}^{n}(i^{2}+i)=2\sum_{i=1}^{n}(i^{2})+\sum_{i=1}^{n}(i)$

$T(n)=2+\frac{n(n+1)(2n+1)}{6}+\frac{n(n+1)}{2}=2+\frac{n^{3}+3n^{2}+2n}{3}$

Suy ra $T(n)=O(n^{3})$

Xem thêm Bài tập & Lời giải

Trong: Giải SBT Tin học 11 định hướng KHMT Kết nối bài 25 Xác định độ phức tạp thời gian thuộc toán

Bài 25.1. Tính độ phức tạp của các hàm thời gian sau:

a) T(n) = n + 2logn

b) T(n) = n$^{2}$ +3nlogn + 2n

c) T(n) = 2$^{100}$

d) T(n) = 2$^{n+1}$

Xem lời giải

Bài 25.2. Cho biết thuật toán sau thực hiện công việc gì và hãy xác định độ phức tạp thời gian của thuật toán.

Cho biết thuật toán sau thực hiện công việc gì và hãy xác định độ phức tạp thời gian của thuật toán.

Xem lời giải

Bài 25.3. Cho biết hàm sau thực hiện công việc gì và hãy xác định độ phức tạp thời gian của chương trình.

Cho biết hàm sau thực hiện công việc gì và hãy xác định độ phức tạp thời gian của chương trình.

Xem lời giải

Bài 25.4. Em hãy xác định thời gian chạy T(n) của thuật toán sắp xếp chèn sau, với n là độ dài của dãy A.

Em hãy xác định thời gian chạy T(n) của thuật toán sắp xếp chèn sau, với n là độ dài của dãy A

Xem lời giải

Bài 25.6. Nếu f(n) = O(g(n)) thì có suy ra được g(n) = O(f(n)) hay không?

Xem lời giải

Bài 25.7.* Giả sử f(n) = $a_{k}n^{k}+a_{k-1}n^{k-1}+...+a_{1}n+a_{0}$. Chứng minh rằng f(n) = O(n$^{k}$)

Xem lời giải

Xem thêm các bài Giải SBT tin học 11 định hướng Khoa học máy tính kết nối tri thức, hay khác:

Xem thêm các bài Giải SBT tin học 11 định hướng Khoa học máy tính kết nối tri thức được biên soạn cho Học kì 1 & Học kì 2 theo mẫu chuẩn của Bộ Giáo dục theo sát chương trình Lớp 11 giúp bạn học tốt hơn.

Lớp 11 | Để học tốt Lớp 11 | Giải bài tập Lớp 11

Giải bài tập SGK, SBT, VBT và Trắc nghiệm các môn học Lớp 11, dưới đây là mục lục các bài giải bài tập sách giáo khoa và Đề thi chi tiết với câu hỏi bài tập, đề kiểm tra 15 phút, 45 phút (1 tiết), đề thi học kì 1 và 2 (đề kiểm tra học kì 1 và 2) các môn trong chương trình Lớp 11 giúp bạn học tốt hơn.