tế khi chạy các thuật toán được tình bằng (mili second, second, minute, hour, day). Kết luận: Thuật toán nào nhanh, thuật toán nào chậm.[r]
Trang 1CƠ SỞ LẬP TRÌNH
NÂNG CAO
Biên soạn: Ths.Tôn Quang Toại TonQuangToai@yahoo.com
TPHCM, NĂM 2013
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2Mục tiêu môn học
- Nắm vững một 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 một số phương pháp Tối ưu hóa
chương trình
Trang 3Nội dung môn học
• Chương 1: Độ phức tạp của 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
Trang 4Tài liệu tham khảo
• Books
1 Vũ Đình Hòa, Đỗ Trung Kiên, “Thuật toán và độ phức tạp
2 Steven S Skiena, “The Algorithm Design Manual”, Springer
, 2008
3 Art Lew, Holger Mauch, “Dynamic Programming – A
4 Thomas H Cormen, Charles E Leiserson, Ronald L Rivest,
Clifford Stein, “Introduction to Algorithms”, 2009
5 Jon Bentley, “Writing Efficient Programs”, Prentice-Hall,
1982
6 Jon Bentley, “Programming Pearls”, Addison Wesley, 2000
Trang 5ĐỘ PHỨC TẠP CỦA THUẬT TOÁN
Chương 1
Trang 6Nội dung
Trang 7ĐỘ PHỨC TẠP CỦA THUẬT
TOÁN
Trang 8Thời gian thực hiện thuật toán
thực thi thuật toán:
– Thời gian thực hiện thuật toán
– Bộ nhớ cần thực hiện thuật toán
Trang 9Thời gian thực hiện thuật toán
– So sánh để chọn ra thuật toán nào chạy
nhanh nhất
– Tìm những yếu điểm của thuật toán để Cải tiến thuật toán tốt hơn
toán
– Thời gian thực hiện thực tế
– Thời gian thực hiện lý thuyết (Phân tích thuật toán)
Trang 10Thời gian thực hiện thuật toán
tế khi chạy các thuật toán được tình bằng (mili second, second, minute, hour, day)
Kết luận: Thuật toán nào nhanh, thuật toán nào chậm