Câu hỏi:
27/11/2023 265Cho 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.
1 def findMax(A):
2 maxVal = A[0]
Siêu phẩm 30 đề thi thử THPT quốc gia 2024 do thầy cô VietJack biên soạn, chỉ từ 100k trên Shopee Mall.
Quảng cáo
Trả lời:
Hàm trên thực hiện việc tìm phần tử lớn nhất của mảng A.
Gọi n là kích thước của mảng, T(n) là thời gian thực hiện của thuật toán. Thời gian chạy của thuật toán được phân tích như sau:
– Câu lệnh 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 − 1, nên vòng lặp có n – 1 bước lặp.
– Với mỗi bước lặp chương trình thực hiện 1 lệnh so sánh tại dòng 4 và 1 lệnh gán tại dòng 5 (nếu điều kiện thoả mãn).
– Lệnh trả về tại dòng 6 cần 1 đơn vị thời gian.
Tổng hợp lại chương trình trên có thời gian chạy là
T(n) = 2 + 2(n-1) = 2n = O(n).
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Tính độ phức tạp của các hàm thời gian sau:
a) T(n) = n + 2log n.
c) T(n) = 2100
b) T(n) = n2 + 3nlogn + 2n.
d) T(n) = 2n+1.
Câu 2:
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.
Câu 4:
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.
về câu hỏi!