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 hiện thuật toán, Bộ nhớ cần thực hiện thuật toán. Tiêu chí thường được dùng để đánh giá thuật toán là thời gian thực hiện thuật toán.
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 TỐN Thời gian thực thuật tốn Phân tích thuật tốn: Phân tích thuật tốn xác định lượng tài nguyên cần thiết để thực thi thuật tốn: • • Thời gian thực thuật tốn Bộ nhớ cần thực thuật tốn Tiêu chí thường dùng để đánh giá thuật toán thời gian thực thuật toán Thời gian thực thuật tốn Mục tiêu phân tích thuật tốn • • So sánh để chọn thuật toán chạy nhanh Tìm yếu điểm thuật tốn để Cải tiến thuật toán tốt cách “đo” thời gian thực thuật tốn • • Thời gian thực thực tế Thời gian thực lý thuyết (Phân tích thuật tố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 thuật tốn tình (mili second, second, minute, hour, day) Kết luận: Thuật toán nhanh, thuật toán chậm Thời gian thực thuật toán Thời gian thực thực tế phụ thuộc vào nhiều yếu tố: • Dữ liệu vào: – Kích thước liệu – Đặc điểm liệu • • • • Tốc độ máy tính Ngơn ngữ lập trình Chương trình dịch cho ngơn ngữ lập trình Hệ điều hành để thực chương trình Thời gian thực thuật tốn Thời gian thực thực tế: Dựa thực tế chạy thuật tốn viết trên: • • • Cùng ngơn ngữ lập trình, trình biên dịch Cùng hệ thống máy tính Cùng liệu vào chuẩn Kết luận: Thuật toán nhanh, thuật toán chậm Thời gian thực thuật toán Thời gian thực lý thuyết: Dựa vào • • Số phép toán thuật toán thực lần Kích thước liệu vào Kết luận + Thuật toán nhanh, thuật toán chậm + Tìm nơi cần cải tiến thuật tốn Thời gian thực thuật toán Phép toán bản: Một phép toán gọi thời gian thực bị chặn số (chỉ phụ thuộc cách cài đặt sử dụng – ngơn ngữ lập trình, máy tính, …) Ví dụ: • • • • • • +, -, *, / Các phép so sánh: >, =, n; {3} for (i=0; i> a[i]; {5} s = 0; {6} for (i=0; i