1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CƠ sở lập TRÌNH NÂNG CAO

337 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 337
Dung lượng 1,69 MB

Nội dung

KHOA CÔNG NGHỆ THÔNG TIN CƠ SỞ LẬP TRÌNH NÂNG CAO Mục tiêu môn học  Mục tiêu cần đạt - Nắm vững số phương pháp Thiết kế thuật toán để giải bài toán tin học - Nắm vững số phương pháp Tối ưu hóa chương trình Nội dung môn học           Chương 1: Độ phức tạp thuật toán Chương 2: Ôn tập kỹ thuật xử lý File – Mảng – Xâu ký tự Chương 3: Lập trình Đệ quy Chương 4: Phương pháp Quay lui Chương 5: Phương pháp Nhánh cận Chương 6: Phương pháp Chia để trị Chương 7: Phương pháp Tham lam Chương 8: Phương pháp Quy hoạch động Chương 9: Phương pháp Hình học Chương 10: Tối ưu hóa chương trình Tài liệu tham khảo  Books Vũ Đình Hịa, Đỗ Trung Kiên, “Thuật tốn độ phức tạp thuật toán”, NXB ĐHSP, 2007 Steven S Skiena, “The Algorithm Design Manual”, Springer , 2008 Art Lew, Holger Mauch, “Dynamic Programming – A Computational Tool”, Springer, 2007 Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein, “Introduction to Algorithms”, 2009 Jon Bentley, “Writing Efficient Programs”, Prentice-Hall, 1982 Jon Bentley, “Programming Pearls”, Addison Wesley, 2000 Chương ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Nội dung  Độ phức tạp thuật toán  Ước lượng độ phức tạp thuật toán ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Thời gian thực thuật toán  Phân tích thuật toán: Phân tích thuật toán là xác định lượng tài nguyên cần thiết để thực thi thuật toán: • • Thời gian thực thuật toán Bộ nhớ cần thực thuật toán  Tiêu chí thường dùng để đánh giá thuật toán là thời gian thực thuật toán Thời gian thực thuật toán  Mục tiêu phân tích thuật toán • • So sánh để chọn thuật toán nào chạy nhanh Tìm yếu điểm thuật toán để Cải tiến thuật toán tốt  cách “đo” thời gian thực thuật toán • • Thời gian thực thực tế Thời gian thực lý thuyết (Phân tích thuật toán) Thời gian thực thuật toán  Thời gian thực thực tế: Dựa thực tế chạy các thuật toán tình (mili second, second, minute, hour, day) Kết luận: Thuật toán nhanh, thuật toán chậm 10 Dùng phương pháp Quy hoạch động – Bảng tra (lookup table)  Ví dụ: Tính n n n C , C , C , , C n n n! C = k !(n − k )! k n  Cách 1: Cách thơng thường • • • Tính k! Tính tổ hợp: Gọi tính giai thừa Tính các C k n 323 Dùng phương pháp Quy hoạch động – Bảng tra (lookup table) Cải tiến  Cách 2: Dùng bảng lookup • Dùng bảng (n+1) phần tử a[0], a[1], , a[n] để tính và lưu a[i]=i! a[n] C = ∀k = 0, n a[k ]* a[n − k ] k n 324 Tận dụng các công thức  Sử dụng các cơng thức thay cho vịng lặp  Tính toán giấy trước lập trình  Tìm mối quan hệ bước tính trước và bước tính sau 325 Tận dụng các cơng thức  Ví dụ: Tính tổng S sau: s (n) = + + + n int TinhTong(int n) { int TinhTong(int n) int s; { s=0; int s; int i; s = n*(n+1)/2; for (i=1; i

Ngày đăng: 15/03/2021, 18:28

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w