Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán

Bài giảng điện tử Tin học 11 - Định hướng Khoa học máy tính kết nối tri thức. Giáo án powerpoint Bài 24: Đánh giá độ phức tạp thời gian thuật toán. Giáo án thiết kế theo phong cách hiện đại, nội dung đầy đủ, đẹp mắt, tạo hứng thú học tập cho học sinh. Thầy, cô giáo có thể tham khảo.

Click vào ảnh dưới đây để xem 1 phần giáo án rõ nét

Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Giáo án điện tử Khoa học máy tính 11 kết nối Bài 24: Đánh giá độ phức tạp thời gian thuật toán

Các tài liệu bổ trợ khác

Xem toàn bộ: Giáo án điện tử khoa học máy tính 11 kết nối tri thức

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

  • C = 0
  • for k in range (n):
  • C = C + 1
  • print(C)

Chương trình 2:

1  n = 100

  • C = 0
  • for i in range (n):
  • for j in range(n):
  • C = C + 1
  • print(C)

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:

  1. Các phép toán đơn giản như phép tính số học + - */ phép lấy thương nguyên và số dư, các phép so sánh sẽ tính là 1 đơn vị thời gian.
  2. Các phép toán lôgic cơ bản như AND, OR, NOT sẽ tính là 1 đơn vị thời gian.
  3. Các lệnh đơn như lệnh gán, lệnh in, đọc dữ liệu.... tính là 1 đơn vị thời gian.
  4. Vòng lặp for hoặc while sẽ được tính thời gian bằng tổng đơn vị thời gian thực hiện của mỗi bước lặp.
  5. Lệnh if với nhiều trường hợp rẽ nhánh sẽ được tính thời gian bằng đơn vị thời gian lớn nhất của các lệnh nhánh.

Á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ư:

  • O(1) - hằng số
  • O(logn) - logarit
  • O(n) - tuyến tính
  • O(nlogn) - tuyến tính logarit
  • O(n2) - bình phương
  • O(nk) - đa thức
  • O(an) - lũy thừa
  • O(n!) - giai thừa

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

  • C = 0
  • for k in range (n):
  • C = C + 1
  • print(C)

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

  • C = 0
  • for i in range (n):
  • for j in range(n):
  • C = C + 1
  • print(C)

Chú ý

 

Trên chỉ là 1 phần của giáo án. Giáo án khi tải về có đầy đủ nội dung của bài. Đủ nội dung của học kì I + học kì II

MỘT VÀI THÔNG TIN:

  • Word được soạn: Chi tiết, rõ ràng, mạch lạc
  • Powerpoint soạn: Hiện đại, đẹp mắt để tạo hứng thú học tập
  • Word và powepoint đồng bộ với nhau

Phí giáo án:

  • Giáo án word: 300k/học kì - 400k/cả năm
  • Giáo án Powerpoint: 400k/học kì - 450k/cả năm
  • Trọn bộ word + PPT: 500k/học kì - 600k/cả năm

=> Khi đặt: nhận đủ giáo án cả năm ngay và luôn

CÁCH TẢI:

  • Bước 1: Chuyển phí vào STK: 10711017 - Chu Văn Trí- Ngân hàng ACB (QR)
  • Bước 2: Nhắn tin tới Zalo Fidutech - nhấn vào đây để thông báo và nhận giáo án

=> Khi đặt, sẽ nhận giáo án ngay và luôn. Tặng kèm phiếu trắc nghiệm + đề kiểm tra ma trận

Xem toàn bộ: Giáo án điện tử khoa học máy tính 11 kết nối tri thức

ĐẦY ĐỦ GIÁO ÁN CÁC BỘ SÁCH KHÁC

GIÁO ÁN WORD LỚP 11 KẾT NỐI TRI THỨC

 

GIÁO ÁN POWERPOINT LỚP 11 KẾT NỐI TRI THỨC

GIÁO ÁN CHUYÊN ĐỀ LỚP 11 KẾT NỐI TRI THỨC

GIÁO ÁN DẠY THÊM 11 KẾT NỐI TRI THỨC

CÁCH ĐẶT MUA:

Liên hệ Zalo: Fidutech - nhấn vào đây

Xem thêm các bài khác

GIÁO ÁN POWERPOINT CHỦ ĐỀ 1. MÁY TÍNH VÀ XÃ HỘI TRI THỨC

GIÁO ÁN POWERPOINT CHỦ ĐỀ 2. TỔ CHỨC LƯU TRỮ, TÌM KIẾM VÀ TRAO ĐỔI THÔNG TIN

GIÁO ÁN POWERPOINT CHỦ ĐỀ 3. ĐẠO ĐỨC, PHÁP LUẬT VÀ VĂN HÓA TRONG MÔI TRƯỜNG SỐ

GIÁO ÁN POWERPOINT CHỦ ĐỀ 4. GIỚI THIỆU CÁC HỆ CƠ SỞ DỮ LIỆU

GIÁO ÁN POWERPOINT CHỦ ĐỀ 5. HƯỚNG NGHIỆP VỚI TIN HỌC

Giáo án điện tử Khoa học máy tính 11 kết nối Bài 16: Công việc quản trị cơ sở dữ liệu

GIÁO ÁN POWERPOINT CHỦ ĐỀ 6. KĨ THUẬT LẬP TRÌNH

 
Chat hỗ trợ
Chat ngay