Bài giảng Cấu trúc dữ liệu và giải thuật: Phân tích thuật toán - Phan Mạnh Hiển (2020)

10 7 0
Bài giảng Cấu trúc dữ liệu và giải thuật: Phân tích thuật toán - Phan Mạnh Hiển (2020)

Đang tải... (xem toàn văn)

Thông tin tài liệu

• Nhằm xác định thời gian chạy (độ phức tạp) của thuật toán dưới dạng một hàm f của kích thước đầu vào n.. − VD: Thời gian tìm tuần tự một phần tử x trong một dãy n phần tử là f(n) = n[r]

(1)

Phân tích thuật tốn

Nguyễn Mạnh Hiển

(2)

Nội dung

1 Phân tích thuật tốn gì? 2 Các ký hiệu tiệm cận

3 Tốc độ tăng hàm

(3)(4)

Phân tích thuật tốn

• Nhằm xác định thời gian chạy (độ phức tạp) thuật toán dạng hàm f kích thước đầu vào n

− VD: Thời gian tìm phần tử x dãy n phần tử f(n) = n

• Đơn vị thời gian:

− Không phải giờ, phút, giây

− Mà thao tác bản, VD: cộng, nhân, so sánh

(5)

Đếm số thao tác bản

• Nhận diện thao tác thuật tốn

• Xác định thao tác T chiếm nhiều thời gian chạy so với thao tác lại

− Thao tác T thường xuất vịng lặp • Đếm số lần thực thao tác T, thu hàm thời

(6)

Ví dụ đếm số thao tác bản Ví dụ 1: In phần tử (C++)

for (i = 0; i < n; i++) cout << a[i] << endl;

Ví dụ 3: Kiểm tra tính xếp (C++) template <class T>

bool isSorted(T *a, int n) {

bool sorted = true;

for (int i=0; i<n-1; i++) if (a[i] > a[i+1])

sorted = false; return sorted;

}

Số lần in hình = n

Số phép so sánh = n – 1

Có thể cải tiến thuật tốn bên trên?

Ví dụ 2: Nhân ma trận tam giác với véctơ (mã giả)

for i  to n ci 

for i  to n for j  to i

ci  ci + aij * bj

(7)(8)

Phân tích tiệm cận

• Nhằm xem xét tốc độ tăng trưởng hàm f(n) n dần tới +

• Cho phép quy dạng hàm f(n) khác vài dạng (như log n, n, n2), từ giúp so sánh thời gian chạy thuật tốn dễ dàng hơn

• Có cách phân tích tiệm cận tương ứng với ba ký hiệu tiệm cận sau đây:

− Ô lớn: O  tìm cận f(n)

− Ơ-mê-ga lớn:   tìm cận f(n)

(9)

Ký hiệu O

f(n) = O(g(n))

khi  c > n0 > cho f(n)  cg(n) n  n0

f(n) cg(n)

n0

(10)

Ký hiệu 

f(n) = (g(n))

khi  c > n0 > cho cg(n)  f(n) n  n0

f(n) cg(n)

n0

Ngày đăng: 11/03/2021, 07:26

Tài liệu cùng người dùng

Tài liệu liên quan