Tải bài giảng điện tử powerpoint Khoa học máy tính 11 KNTT tri thức Bài 24: Đánh giá độ phức tạp thời gian thuật toán. Bài học được thiết kể đẹp mắt, nội dung giảng dạy hay nhiều trò chơi và video phong phú thu hút học sinh tập trung nắm bắt kiến thức quan trong. Tải Tải giáo án Powerpoint Powerpoint tải về chỉnh sửa được. Kéo xuống để xem chi tiết
Rõ nét về file powerpoint trình chiếu. => Xem thêm
CHÀO MỪNG CẢ LỚP ĐẾN VỚI BÀI HỌC HÔM NAY!
KHỞI ĐỘNG
Quan sát Hình 24.1, chúng ta dễ thấy phép nhân hai số có n chữ số sẽ cần n2 phép nhân và 2n phép cộng, vậy tổng số các phép tính đơn của phép nhân này là n2 + 2n, chúng ta nói độ phức tạp thời gian của phép nhân này có bậc n2.
Năm 1960, trong một tiết dạy về công nghệ thông tin, nhà toán học Nga, Viện sĩ Kolmogorov đã hỏi các sinh viên của mình là có ai tìm được cách tính phép nhân trên với thời gian tốt hơn bậc n2 được không? Đúng một tuần sau, một sinh viên tên là Karatsuba đã đưa cho Viện sĩ Kolmogorov một lời giải tốt hơn về phép tính nhân trên chỉ với độ phức tạp thời gian bậc n1,58496.
Quan sát và ước lượng thời gian thực hiện các đoạn chương trình 1 và 2 trong Hình 24.2. Chương trình nào chạy nhanh hơn? Vì sao?
Chương trình 1 chạy nhanh hơn vì chương trình 1 có 1 vòng lặp, chương trình 2 có 2 vòng lặp.
BÀI 24: ĐÁNH GIÁ ĐỘ PHỨC TẠP THỜI GIAN THUẬT TOÁN
NỘI DUNG BÀI HỌC
01 ĐÁNH GIÁ THỜI GIAN THỰC HIỆN CHƯƠNG TRÌNH
Thảo luận nhóm đôi
Quan sát và thực hiện đánh giá thời gian chạy của các chương trình 1 và 2 trong Hình 24.2. Từ đó biết và hiểu được cách đánh giá thời gian thực hiện chương trình.
Chương trình 1:
1 n = 100
Chương trình 2:
1 n = 100
GHI NHỚ
Cách đánh giá thời gian chạy chương trình được dựa trên một bộ khung các nguyên tắc dùng làm căn cứ để tính toán. Các nguyên tắc khung như sau:
Áp dụng các nguyên tắc tính khung thời gian trên chúng ta có thể tính được gần chính xác thời gian thực hiện chương trình mà không cần cài đặt và chạy chương trình trên máy tính.
Chú ý
Trong một chương trình, phép toán được thực hiện nhiều nhất và đóng vai trò chính khi thực hiện tính thời gian, được gọi là phép toán tích cực.
Câu hỏi củng cố kiến thức
Câu 1 (SGK-tr.113). Các lệnh và đoạn chương trình sau cần chạy trong bao nhiêu đơn vị thời gian?
Câu 2 (SGK-tr.113). Khẳng định “Trong mọi chương trình chỉ có đúng một phép toán tích cực” là đúng hay sai?
Khẳng định sai
02 PHÂN TÍCH ĐỘ PHỨC TẠP THỜI GIAN THUẬT TOÁN
Thảo luận nhóm đôi
Hoạt động 2:
Cùng trao đổi và tìm hiểu cách phân loại thuật toán dựa trên độ phức tạp thời gian thuật toán.
Kí hiệu O-lớn dùng để đánh giá và phân loại độ phức tạp thời gian của thuật toán khi kích thước đầu vào của bài toán tăng lên vô cùng.
ĐỊNH NGHĨA O-LỚN (BIG-O):
Cho f(n) và g(n) là hai hàm có đối số tự nhiên. Ta viết f(n) = O(g(n)) và nói f(n) có bậc O-lớn của g(n) nếu tồn tại hằng số c > 0 và số tự nhiên n0 ≥ 1 sao cho với mọi n ≥ n0 ta có f(n) ≤ c.g(n). Nếu f(n) là O-lớn của g(n) thì có thể viết f(n) = O(g(n)).
► Các thuật toán sẽ được đánh giá qua độ phức tạp của một số hàm chuẩn như:
Xét ví dụ:
Chương trình 1 ở Hình 24.2 có hàm thời gian T1(n) = n + 3.
Chọn c = 2, n0 = 3. Khi đó với n ≥ n0 ta có:
T1(n) = n + 3 ≤ n + n = c.n.
Do đó T1(n) = O(n). Chúng ta nói chương trình 1 có độ phức tạp thời gian O(n) - tuyến tính.
Chương trình 1:
1 n = 100
Chương trình 2 ở Hình 24.2 có hàm thời gian T2(n) = n2 + 3.
Chọn c = 2, n0 = 2. Khi đó với n ≥ n0, ta có:
T2(n) = n2 + 3 < n2 + = 2n2 = c.n2.
Vậy suy ra T2(n) = O(n2). Ta nói chương trình 2 ở trên có độ phức tạp thời gian O(n2) - bình phương.
Chương trình 2:
1 n = 100
Chú ý
.....
=> Còn nữa.... Files tải về, sẽ có đầy đủ nội dung bài học
Nâng cấp lên tài khoản VIP để tải tài liệu và dùng thêm được nhiều tiện ích khác
Bài giảng điện tử Khoa học máy tính 11 KNTT, Tải giáo án Powerpoint Khoa học máy tính 11 KNTT Bài 24: Đánh giá độ phức tạp thời, Tải giáo án Powerpoint Khoa học máy tính 11 KNTT tri thức Bài 24: Đánh giá độ phức tạp thời