Điều kiện S: lệnh.

Một phần của tài liệu Slide môn toán rời rạc CHƯƠNG 1: THUẬT TOÁN ( TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT) (Trang 48 - 52)

S: lệnh.

Thời gian thực hiện lệnh while được đánh giá:

 Giả sử thời gian thực hiện lệnh S (thân của lệnh while) là O(f(n)).

 Giả sử g(n) là số tối đa các lần thực hiện lệnh S khi thực hiện lệnh while.

1.5. ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TỐN

Thí dụ: xét đoạn chương trình:

(1) i = 1;

(2) while (x <> A[i])

(3) i = i +1;

 Hai câu lệnh gán (1), (3) đều là O(1).

 Vòng lặp while ở hai dịng (2) và (3) có mục đích đi tìm vị trí của phần tử có giá trị bằng x trên mảng A (giả thiết x có mặt trên mảng). Như vậy tối đa số lần lặp là n (với n là số phần tử của mảng A).

 Từ đó suy ra thời gian thực hiện của đoạn chương trình trên là O(n).

1.5. ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TOÁN

Thời gian thực hiện câu lệnh do while

do { S1, S2, .., Sn } while(B); B: điều kiện Si (i = 1, 2,… , n) các câu lệnh.

Giả sử thời gian thực hiện khối {S1, S2,…Sn} là O(f(n)). Giả sử g(n) là số tối đa các lần lặp.

1.5. ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TỐN

Ví dụ phân tích thời gian hoạt động của đoạn chương trình sau:

 Thời gian thực hiện chương trình phụ thuộc vào n.

 Câu lệnh {1}, {3} và {6} có thời gian thực hiện O(1)

 Câu lệnh lặp for {2} có số lần lặp 2n như vậy thời gian thực hiện là O(n)

 Câu lệnh {5} có số lần lặp là n, như vậy lệnh {5} có thời gian thực hiện là O(n). Lệnh lặp for {4} có số lần lặp là n, như vậy lệnh {4} có thời gian thực hiện là O(n2)

 Vậy thời gian thực hiện đoạn chương trình trên là: Max(O(1), O(n), O(n2)) = O(n2)

{1} c = 0;

{2} for (i=1; i<=2*n; i++) {3} c = c + 1; {4} for (i=1; i <= n; i++)

{5} for(j=1;j<=n;j++)

{6} c = c + 1;

1.5. ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA THUẬT TỐN

 Ví dụ phân tích thời gian hoạt động của đoạn chương trình sau:

 Lệnh {3} có thời gian thực hiện O(1)

 Khi i = 1, j chạy từ 1 đến 1  Lệnh for {2} lặp 1 lần  Khi i = 2, j chạy từ 1 đến 2  Lệnh for {2} lặp 2 lần

 ……….

 Khi i = n, j chạy từ 1 đến n  Lệnh for {2} lặp n lần  Như vậy lệnh {3} được lặp 1 + 2 + ⋯ + 𝑛 = 𝑛 𝑛+1

2 do đó lệnh{1} có thời gian thực hiện O(n2)

Một phần của tài liệu Slide môn toán rời rạc CHƯƠNG 1: THUẬT TOÁN ( TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT) (Trang 48 - 52)

Tải bản đầy đủ (PDF)

(78 trang)