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

Cấu trúc

  • Slide 1

  • Mục tiêu môn học

  • Nội dung môn học

  • Tài liệu tham khảo

  • Slide 5

  • Nội dung

  • Slide 7

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Thời gian thực hiện thuật toán

  • Độ phức tạp thuật toán

  • Độ phức tạp thuật toán

  • Độ phức tạp thuật toán

  • Một số dạng hàm kí hiệu độ phức tạp thuật toán

  • Các quy tắc của độ phức tạp

  • Các quy tắc của độ phức tạp

  • Các quy tắc của độ phức tạp

  • Các quy tắc của độ phức tạp

  • Một số dạng hàm kí hiệu độ phức tạp thuật toán

  • Một số dạng hàm kí hiệu độ phức tạp thuật toán

  • Slide 30

  • Phân loại câu lệnh trong một ngôn ngữ lập trình

  • Đánh giá độ phức tạp của từng câu lệnh

  • Một số ví dụ

  • Một số ví dụ

  • Một số ví dụ

  • Một số ví dụ

  • Một số ví dụ

  • Một số ví dụ

  • Một số ví dụ

  • Slide 40

  • Slide 41

  • Nội dung

  • Kỹ thuật xử lý file văn bản

  • Kỹ thuật xử lý file văn bản

  • Kỹ thuật xử lý file văn bản

  • Kỹ thuật xử lý file văn bản

  • Kỹ thuật xử lý mảng

  • Kỹ thuật xử lý mảng

  • Kỹ thuật xử lý mảng

  • Kỹ thuật xử lý xâu ký tự

  • Kỹ thuật xử lý xâu ký tự

  • Kỹ thuật xử lý xâu ký tự

  • Kỹ thuật xử lý xâu ký tự

  • Slide 54

  • Slide 55

  • Nội dung

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Định nghĩa theo cách đệ quy

  • Cài đặt Hàm đệ quy

  • Cài đặt Hàm đệ quy

  • Cài đặt Hàm đệ quy

  • Cài đặt Hàm đệ quy

  • Hoạt động của Hàm đệ quy

  • Hoạt động của Hàm đệ quy

  • Hoạt động của Hàm đệ quy

  • Hoạt động của Hàm đệ quy

  • Hoạt động của Hàm đệ quy

  • Phân loại đệ quy

  • Phân loại đệ quy Đệ quy trực tiếp

  • Phân loại đệ quy Đệ quy gián tiếp

  • Phân loại đệ quy Đệ quy gián tiếp

  • Phân loại đệ quy Đệ quy tuyến tính

  • Phân loại đệ quy Đệ quy nhánh

  • Phân loại đệ quy Đệ quy đuôi

  • Phân loại đệ quy Đệ quy lồng nhau

  • Ứng dụng của đệ quy

  • Ưu điểm và khuyết điểm của đệ quy

  • Một số phương pháp khử đệ quy

  • Bài tập áp dụng

  • Bài tập áp dụng

  • Bài tập áp dụng

  • Slide 93

  • Slide 94

  • Nội dung

  • Hình ảnh

  • Giới thiệu

  • Bài toán

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Sơ đồ cài đặt

  • Sơ đồ cài đặt

  • Sơ đồ cài đặt

  • Sơ đồ cài đặt

  • Sơ đồ cài đặt

  • Sơ đồ cài đặt

  • Các ví dụ: {1} Tổ hợp

  • Các ví dụ: {1} Tổ hợp

  • Các ví dụ: {1} Tổ hợp

  • Các ví dụ: {1} Tổ hợp

  • Các ví dụ: {2} Chỉnh hợp lặp

  • Các ví dụ: {2} Chỉnh hợp lặp

  • Các ví dụ: {2} Chỉnh hợp lặp

  • Các ví dụ: {2} Chỉnh hợp lặp

  • Các ví dụ: {3} Chỉnh hợp không lặp

  • Các ví dụ: {3} Chỉnh hợp không lặp

  • Các ví dụ: {3} Chỉnh hợp không lặp

  • Các ví dụ: {3} Chỉnh hợp không lặp

  • Các ví dụ: {4} Xếp 8 Hậu

  • Các ví dụ: {4} Xếp 8 Hậu

  • Các ví dụ: {4} Xếp 8 Hậu

  • Các ví dụ: {4} Xếp 8 Hậu

  • Ưu điểm và khuyết điểm

  • Slide 129

  • Slide 130

  • Nội dung

  • Hình ảnh

  • Giới thiệu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Bài toán tối ưu

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Sơ đồ cài đặt

  • Sơ đồ cài đặt

  • Ví dụ:

  • Ví dụ:

  • Ví dụ:

  • Ví dụ:

  • Ví dụ:

  • Ví dụ:

  • Slide 156

  • Slide 157

  • Nội dung

  • Hình ảnh

  • Giới thiệu

  • Phương pháp

  • Phương pháp

  • Sơ đồ cài đặt

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Slide 184

  • Slide 185

  • Nội dung

  • Hình ảnh

  • Giới thiệu

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Sơ đồ cài đặt

  • Sơ đồ cài đặt

  • Chú ý

  • Chú ý

  • Các ví dụ: {1} Bài toán thu nhạc

  • Các ví dụ: {1} Bài toán thu nhạc

  • Các ví dụ: {1} Bài toán thu nhạc

  • Các ví dụ: {2} Bài toán cái túi

  • Các ví dụ: {2} Bài toán cái túi

  • Các ví dụ: {2} Bài toán cái túi

  • Các ví dụ: {2} Bài toán cái túi

  • Các ví dụ: {2} Bài toán cái túi

  • Các ví dụ: {3} Bài toán người du lịch

  • Các ví dụ: {3} Bài toán người du lịch

  • Các ví dụ: {3} Bài toán người du lịch

  • Các ví dụ: {3} Bài toán người du lịch

  • Các ví dụ: {4} Bài toán mã đi tuần

  • Các ví dụ: {4} Bài toán mã đi tuần

  • Các ví dụ: {4} Bài toán mã đi tuần

  • Ưu điểm và khuyết điểm

  • Slide 212

  • Slide 213

  • Nội dung

  • Hình ảnh

  • Giới thiệu

  • Giới thiệu

  • Slide 218

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • 2 Tiếp cận cài đặt Quy hoạch động

  • 2 Tiếp cận cài đặt Quy hoạch động

  • 2 Tiếp cận cài đặt Quy hoạch động

  • 2 Tiếp cận cài đặt Quy hoạch động

  • 2 Tiếp cận cài đặt Quy hoạch động

  • 2 Tiếp cận cài đặt Quy hoạch động

  • Ví dụ

  • Ví dụ

  • Ví dụ

  • Slide 232

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Phương pháp

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Các ví dụ

  • Slide 249

  • Slide 250

  • Nội dung

  • Hình ảnh

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Cấu trúc dữ liệu cơ bản

  • Điểm và đoạn thẳng, đường thẳng và tia

  • Điểm và đoạn thẳng, đường thẳng và tia

  • Điểm và đoạn thẳng, đường thẳng và tia

  • Điểm và đoạn thẳng, đường thẳng và tia

  • Điểm và đoạn thẳng, đường thẳng và tia

  • Điểm và đoạn thẳng, đường thẳng và tia

  • Điểm và đoạn thẳng, đường thẳng và tia

  • Giao điểm 2 đoạn thẳng, đường thẳng

  • Giao điểm 2 đoạn thẳng, đường thẳng

  • Giao điểm 2 đoạn thẳng, đường thẳng

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Đa giác

  • Chú ý về lập trình với số thực

  • Slide 288

  • Slide 289

  • Tối ưu hóa chương trình

  • Slide 291

  • Chỉnh sửa mã chương trình

  • Slide 293

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Tốu ưu câu lệnh lặp

  • Slide 311

  • Quy tắc logic

  • Quy tắc logic

  • Quy tắc logic

  • Quy tắc logic

  • Tối ưu biểu thức logic

  • Tối ưu biểu thức logic

  • Slide 318

  • THAY ĐỔI THUẬT TOÁN

  • Dùng phương pháp Chia để trị

  • Dùng phương pháp Chia để trị

  • Dùng phương pháp Quy hoạch động – Bảng tra (lookup table)

  • Dùng phương pháp Quy hoạch động – Bảng tra (lookup table)

  • Dùng phương pháp Quy hoạch động – Bảng tra (lookup table)

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Tận dụng các công thức

  • Slide 337

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