1. Một vấn ựề ựược giải quyết bởi nhiều thuật toán khác nhau
2. đối với một thuật toán:
Ờ độ phức tạp về không gian (dung lượng bộ nhớ sử dụng) Ờ độ phức tạp về thời gian chạy
3. độ phức tạp về thời gian chạy
Ờ Kĩ năng lập trình Ờ Chương trình dịch
Ờ Tốc ựộ thực hiện các phép toán trên máy tắnh Ờ Dữ liệu vào
độ phức tạp thuật toán
1. Thời gian chạy 1 thuật toán phụ thuộc vào cỡ (size) của dữ liệu vào
Ờ Tìm xem 1 ựối tượng có trong danh sách N phần tử hay không? Ờ Sắp xếp tăng dần dãy số gồm N số
Ờ Bài toán người bán hàng cần thăm N ựịa ựiểm
2. Trong các dữ liệu vào cùng một cỡ (N), thời gian chạy của thuật toán cũng 2. Trong các dữ liệu vào cùng một cỡ (N), thời gian chạy của thuật toán cũng
thay ựổi
Vắ dụ: Tìm xem 1 ựối tượng có trong danh sách N phần tử hay không? Ờ đối tượng nằm ở ựầu danh sach
Ờ đối tượng nằm ở giữa danh sach Ờ đối tượng nằm ở cuối danh sách
độ phức tạp thuật toán
1. Thời gian chạy trong trường hợp xấu nhất (worse-case running time) Thời gian chạy lớn nhất của thuật toán ựó trên tất cả các dữ liệu cùng cỡ
2. Thời gian chạy trung bình
Là trung bình cộng thời gian chạy trên tất cả các bộ dữ liệu cùng cỡ.
3. Thời gian chạy trong trường hợp tốt nhất (best-case running time)
độ phức tạp thuật toán
đánh giá thời gian chạy thuật toán:
Ờ T(n) = số lượng phép toán sơ cấp cần phải thực hiện (phép toán số học, phép toán logic, phép toán so sánh). Mỗi phép toán sơ cấp ựược thực hiện trong một khoảng thời gian cố ựịnh.
Ờ Quan tâm ựến tốc ựộ tăng của hàm T(n) .
Ờ Vắ dụ: