Ðây là phương trình đệ quy để tính thời gian thực hiện của chương trình đệ quy Giai_thua. Ví du 1-11: Chúng ta xét thủ tục MergeSort một cách phác thảo như sau: FUNCTION MergeSort (L:List; n:Integer):List; VAR L1,L2:List; BEGIN IF n=1 THEN RETURN(L) ELSE BEGIN Chia đôi L thành L1 và L2, với độ dài n/2; RETURN(Merge(MergeSort(L1,n/2),MergeSort(L2,n/2))); END; END; | Giải thuật Kĩ thuật phân tích giải thuật C1 nêu n 0 T n I T n-1 C2 nêu n 0 Đây là phương trình đệ quy để tính thời gian thực hiện của chương trình đệ quy Giai_thua. Ví du 1-11 Chúng ta xét thủ tục MergeSort một cách phác thảo như sau FUNCTION MergeSort L List n Integer List VAR L1 L2 LÌst BEGIN IF n 1 THEN RETURN L ELSE BEGIN Chia đôi L thành L1 và L2 với độ dài n 2 RETURN Merge MergeSort L1 n 2 MergeSort L2 n 2 END END Chẳng hạn để sắp xếp danh sách L gồm 8 phần tử 7 4 8 9 3 1 6 2 ta có mô hình minh họa của MergeSort như sau Hình 1-3 Minh hoạ sắp xếp trộn Hàm MergeSort nhận một danh sách có độ dài n và trả về một danh sách đã được sắp xếp. Thủ tục Merge nhận hai danh sách đã được sắp L1 và L2 mỗi danh sách có độ dài 72 trộn chúng lại với nhau để được một danh sách gồm n phần tử có thứ tự. Nguyễn Văn Linh Trang 9 Giải thuật Kĩ thuật phân tích giải thuật Giải thuật chi tiết của Merge ta sẽ bàn sau chúng ta chỉ để ý rằng thời gian để Merge các danh sách có độ dài 2 là O n . Gọi T n là thời gian thực hiện MergeSort một danh sách n phần tử thì T -2 là thời gian thực hiện MergeSort một danh sách 2 phần tử. Khi L có độ dài 1 n 1 thì chương trình chỉ làm một việc duy nhất là return L việc này tốn O 1 C1 thời gian. Trong trường hợp n 1 chương trình phải thực hiện gọi đệ quy MergeSort hai lần cho L1 và L2 với độ dài n do đó thời gian để gọi hai lần đệ quy này là 2T -2 . Ngoài ra còn phải tốn thời gian cho việc chia danh sách L thành hai nửa bằng nhau và trộn hai danh sách kết quả Merge . Người ta xác đinh được thời gian để chia danh sách và Merge là O n C2n . Vậy ta có phương trình đệ quy như sau C1 nêu n 1 n 2T -2 C2 n nêu n 1 T n Giải phương trình đệ quy Có ba phương pháp giải phương trình đệ quy 1. - Phương pháp truy hồi 2. - Phương pháp đoán nghiệm. 3. - Lời gi ải tổng quát của một lớp các phương trình đệ quy. Phương pháp truy hồi Dùng đệ quy để thay thế bất kỳ T m với m n vào phía phải của phương trình cho đến khi tất cả T m với m 1 được thay thế bởi biểu