O(f(x)) và đánh giá thời gian thực hiện thuật toán

Tài liệu tham khảo về O(f(x)) và đánh giá thời gian thực hiện thuật toán | O(f(x)) và đánh giá thời gian thực hiện thuật toán. Khi đánh giá thời gian thực hiện bằng phương pháp toán học, chúng ta sẽ bỏ qua nhân tố phụ thuộc vào cách cài đặt chỉ tập trung vào xác định độ lớn của thời gian thực hiện T(n). Giả sử n là số nguyên không âm. T(n) và f(n) là các hàm thực không âm. Ta viết T(n)=O(f(n)) (đọc T(n) là ô lớn của f(n)), nếu và chỉ nếu tồn tại các hằng số dương c và no sao cho T(n) ≤ (n), với mọi n ≥ no . Nếu một thuật toán có thời gian thực hiện T(n) = O(f(n)) , ta nói thuật toán có thời gian thực hiện cấp f(n) .Từ định nghĩa ký hiệu ô lớn , ta có thể xem rằng hàm f(n) là cận trên của T(n). Ví dụ. Giả sử T(n) = 3n2 + 4n +5. Ta có 3n2 + 4n + 5 ≤ 3n2 + 4n2 + 5n2 = 12n2 , với mọi n ≥1. Vậy T(n) = O(n2). Trong trường hợp này ta nói thuật toán có thời gian thực hiện cấp n2, hoặc gọn hơn, thuật toán có thời gian thực hiện bình phương . Dễ dàng thấy được, nếu T(n)= O(f(n)) và f(n)= O(f1(n)), thì T(n) = O(f1(n)). Thật vậy, vì T(n) là ô lớn của f(n) và f(n) là ô lớn của f1(n) nên tồn tại các hằng số co, no,c1, n1sao cho T(n) ≤ c0 f(n) với mọi n ≥ n0 và f(n) ≤ c1 f1(n) với mọi n ≥ n1. Từ đó ta có T(n) ≤ c0c1f1(n) với mọi n ≥ max(n0, n1). Khi biểu diễn cấp của thời gían thực hiện thuật toán bởi hàm f(n), chúng ta sẽ chọn f(n) là hàm nhỏ nhất, đơn giản nhất có thể được sao cho T(n) = 0(f(n)). Thông thường f(n) là các hàm số sau đây: f(n)=1 ; f(n)= logn; f(n) =n; f(n) = nlog(n) ; f(n)= n2; n3 ; f(n) = 2n . - Nếu T(n)= O(1) điều này có nghĩa là thời gian thực hiện thuật toán được chặn trên bởi một hằng nào đó, trong trường hợp này ta nói thuật toán có thời gian thực hiện hằng . - Nếu T(n)= O(n), tức là bắt đầu từ một n0 nào đó trở đi ta có T(n) ≤ cn với một hằng số c nào đó , trong trường hợp này ta nói thuật toán có thời gian thực hiện tuyến tính. Bảng sau đây cho ta các cấp thời gian thực hiện thuật toán được sử dụng rộng rãi nhất và tên gọi của chúng . Hình 1 Danh sách trên sắp xếp theo thứ tự tăng dần của hàm thời gian thực hiện. - Các hàm loại : 2n, n!, nn thường được gọi là các hàm loại mũ. Thuật toán với thời gian chạy có cấp hàm loại mũ thì tốc độ rất chậm - Các hàm n, n3, n2, nlog 2 n thường được gọi là các hàm đa thức. Thuật toán với thời gian chạy có cấp hàm đa thức thường chấp nhận được

Bấm vào đây để xem trước nội dung
TỪ KHÓA LIÊN QUAN
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.