Professional Documents
Culture Documents
THUẬT TOÁN
vietanh@vnu.edu.vn 1
Mục tiêu
vietanh@vnu.edu.vn 2
Nội dung chính
vietanh@vnu.edu.vn 3
Độ phức tạp thuật toán
▪ Thuật toán được đánh giá mức độ Hiệu quả thông qua
▪ Không gian bộ nhớ sử dụng
▪ Thời gian thực thi
▪ Chương trình biên dịch
▪ Tốc độ xử lý máy tính
▪ Kỹ năng lập trình
▪ Dữ liệu vào
▪ Dễ dàng cài đặt
vietanh@vnu.edu.vn 4
Độ phức tạp thuật toán …
vietanh@vnu.edu.vn 5
Độ phức tạp thuật toán …
vietanh@vnu.edu.vn 6
Ký hiệu O lớn, biểu diễn thời gian thuật toán
▪ Giả sử T(n) là thời gian thực hiện một thuật toán nào đó và f(n), g(n),
h(n) là các hàm xác định dương với mọi n.
▪ Hàm O lớn: O(g(n)) nếu tồn tại các hàng số c và n0 sao cho T(n) <= c.g(n)
với mọi n>= n0 và gọi là kí pháp chữ O lớn, hàm g(n) được gọi là giới
hạn trên của hàm T(n).
▪ Ví dụ, nếu T(n) = n2 + 1 thì T(n) = O(n2).
chọn c=2 và n0 =1, khi đó với mọi n>=1, ta có T(n)= n2+1 <= 2n2 =2g(n).
vietanh@vnu.edu.vn 7
Ký hiệu O lớn, biểu diễn thời gian thuật toán
vietanh@vnu.edu.vn 8
Một số tính chất
Tính bắc cầu: Tất cả các kí pháp trên đều có tính bắc cầu, chẳng hạn: nếu
f(n)= O(g(n)) và g(n)= O(h(n)) thì f(n)= O(h(n))
(ii) Tính phản xạ: Tất cả các kí pháp trên đều có tính phản xạ, chẳng hạn:
f(n)=O(f(n))
vietanh@vnu.edu.vn 9
Xác định độ phức tạp thuật toán
vietanh@vnu.edu.vn 10
Đánh giá thời gian thực hiện các lệnh
vietanh@vnu.edu.vn 11
Đánh giá thời gian thực hiện các lệnh ...
vietanh@vnu.edu.vn 12
Một số ví dụ
vietanh@vnu.edu.vn 13
Một số ví dụ
vietanh@vnu.edu.vn 14
Một số ví dụ
vietanh@vnu.edu.vn 15
Một số ví dụ
vietanh@vnu.edu.vn 18
Một số ví dụ
vietanh@vnu.edu.vn 19
Độ phức tạp tính toán và dữ liệu vào
▪ Phụ thuộc kích thước dữ liệu và tình trạng thực tế của dữ liệu đó.
▪ Trường hợp tốt nhất: T(n) là thời gian ít nhất
▪ Trường hợp xấu nhất: T(n) là thời gian lớn nhất
▪ Trường hợp trung bình: dữ liệu vào tuân theo một phân bố xác suất nào
đó
vietanh@vnu.edu.vn 20
Tổng kết
▪ Độ phức tạp đánh giá dựa vào thời gian thực hiện
▪ Chú ý cách đánh giá làm già thêm O
▪ Độ phức tạp trong các trường hợp: Tốt nhất, Xấu nhất, Trung bình
▪ Phân tích đánh giá thuật toán => Lựa chọn được thuật toán hiệu quả
vietanh@vnu.edu.vn 21
Tiếp theo …
▪ Kỹ thuật đệ qui
vietanh@vnu.edu.vn 22