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
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.
Sách bài tập Tin học 11 Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán - Kết nối tri thức
Câu 25.4 trang 78 SBT Tin học 11: 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.
Lời giải:
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:
• Hai lệnh gán tại dòng 4 và 5.
• Vòng lặp while tại dòng 6. Vòng lặp này sẽ chạy tối đa là i lần. Mỗi lần lặp chương trình sẽ thực hiện hai lệnh gán tại dòng 7 và 8, cần 2 đơn vị thời gian. • Lệnh gán tại dòng 9 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 tối đa là:
Lời giải sách bài tập Tin học 11 Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán hay khác: