Sách bài tập Tin học 11 Bài 5 (Cánh diều): Đánh giá thuật toán

Với giải sách bài tập Tin học 11 Bài 5: Đánh giá thuật toán sách Cánh diều hay nhất, chi tiết sẽ giúp học sinh dễ dàng làm bài tập trong SBT Tin học 11 Bài 5.

1 222 lượt xem


Giải SBT Tin học 11 Bài 5: Đánh giá thuật toán

Câu Fcs17 trang 51 SBT Tin học 11: Những phát biểu nào dưới đây là SAI?

Những phát biểu nào dưới đây là SAI

Lời giải:

Phát biểu 2 và 3 sai. Khi n đủ lớn, 2" sẽ lớn hơn n rất nhiều và tương tự, n’ sẽ lớn hơn n và n.log,n rất nhiều.

Câu Fcs18 trang 51 SBT Tin học 11: Xét bài toán; Tính tổng bình phương các số tự nhiên từ 1 đến n, với n là một số tự nhiên lớn hơn 0. Nói cách khác, tính giá trị S = 1 + 2 + ... + (n - 1) + 1)2 n2.

Em hãy xây dựng thuật toán để giải quyết bài toán trên với độ phức tạp.

1) O(n).

2) O(1).

Lời giải:

1) Dùng vòng lặp từ 1 đến n để cộng từng giá trị bình phương vào biến tổng S.

2) Dùng công thức Xét bài toán Tính tổng bình phương các số tự nhiên từ 1 đến n

Câu Fcs19 trang 52 SBT Tin học 11: Xét bài toán: Cho danh sách các số nguyên 4-4, a,,..., a ) khác nhau từng đôi một. Xác định phần tử có giá trị lớn thứ hai trong danh sách A. Em hãy xây dựng thuật toán để giải quyết bài toán trên với độ phức tạp:

1) O(nlogn).

2) O(n).

Lời giải:

1) Sắp xếp lại danh sách theo thứ tự giảm dần bằng phương pháp sắp xếp nhanh (hàm Sorted ( ) có độ phức tạp O(n.log,n )) rồi in ra phần tử ở vị trí thứ hai.

2) Khởi tạo hai biến max1 = 0 và max2 = 0 tượng trưng cho giá trị lớn thứ 0 nhất và lớn thứ hai trong danh sách A, ta tiến hành duyệt và xét lần lượt từng phần tử v của A:

Nếu max1 < v, ta cập nhật max2 = max1 và max1 = v.

Ngược lại, ta có thể suy ra max1>v(max1 không thể bằng v vì các phần tử trong danh sách A khác nhau từng đôi một). Ta so sánh max2 và v. Nếu max2 < v thì ta cập nhật max2 = v.

Câu Fcs20 trang 52 SBT Tin học 11: Xác định độ phức tạp của đoạn chương trình sau, với giá trị N>0 được cho ở dữ liệu đầu vào:

Xác định độ phức tạp của đoạn chương trình sau với giá trị N>0

Lời giải:

Vì giá trị của i bị giảm đi một nửa sau mỗi bước và vòng lặp sẽ dừng khi i = 0, nên độ phức tạp của chương trình là O(log,N).

Câu Fcs21 trang 52 SBT Tin học 11: Xác định độ phức tạp của đoạn chương trình sau, với giá trị n > 0 được cho ở dữ liệu đầu vào:

Xác định độ phức tạp của đoạn chương trình sau với giá trị n > 0

Lời giải:

Sau khi kết thúc lượt chạy i = 0, giá trị j sẽ tăng lên bằng n. Ở các lượt chạy sau đó của i thì vòng lặp while bên trong sẽ không được thực thi, nên độ phức tạp của cả chương trình chỉ là O(n).

Xem thêm các lời giải sách bài tập Tin học lớp 11 Cánh diều hay, chi tiết khác:

Bài 6: Kiểm thử và sửa lỗi chương trình

Bài 7: Lập trình giải bài toán tìm kiếm

Bài 8: Lập trình một số thuật toán sắp xếp

Bài 9: Lập trình sắp xếp nhanh

Bài 10, 11, 12, 13, 14: Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá. Thực hành thiết kế và lập trình theo mô đun. Thực hành về thư viện các hàm tự định nghĩa

1 222 lượt xem


Xem thêm các chương trình khác: