Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
➤ Gửi thông báo lỗi ⚠️ Báo cáo tài liệu vi phạmNội dung chi tiết: Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
Phân tích thiết kế thuật toánBÀI 4 : PHƯƠNG PHÁP CHIA ĐẺ TRỊMã bài : ITPRG3_12.4Giới thiệuMặc dù không tổn tại một phương pháp vạn năng nào có thề giú Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề úp chúng ta thiết kế được thuật toán giái quyểt mọi vấn đề. nhưng các nhả nghiên cửu đã tim ra một số phưong phảp thiết kế CO' bàn, các phưong pháp này côn đươc gọi lã các chiến lược thiết kế thuật toán. Mỗi phương pháp nãy có thể ãp dụng đề giải quyết một phạm vi khả rộng cãc bãi toán. Trong tài li Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề ệu này chủng tôi sê trinh bày cãc phương pháp thiết kế thuật toán như : chia đề trị (divide and conquer), phưong pháp tham lam (greeding method), quayGiáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
lui (backtracking), quy hoạch đông (dynamic programming), nhánh cận (branch and bound). Trong mỏi chiến lược, chúng tỏi sê trinh bày phương pháp chunPhân tích thiết kế thuật toánBÀI 4 : PHƯƠNG PHÁP CHIA ĐẺ TRỊMã bài : ITPRG3_12.4Giới thiệuMặc dù không tổn tại một phương pháp vạn năng nào có thề giú Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề ướng sự tìm tòi thuât toán. Trong bài nãy chúng ta sẽ xét một phương pháp thưởng được sử dụng đó là phương pháp chia để trị.Mục tiêu thực hiệnHọc xong bãi này học viên sẽ có khà năng:Nắm bát đưoc ý tường cùa phuơng pháp chia để tri.Sù dung phương pháp chia đổ trị để giài quyết các bài toán tim kiếm, Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề chon các phân từ. sãp xếp. nhân ma trân.Áp dụng phương pháp chia đẻ trị dẻ giải quyết một số bài toàn trong thực tế.Thây đuoc lơi thố cùa phương phápGiáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
chia để ư| trong VIỖC xây dung môt sổ thuât toán..13. Phương pháp tổng quátÝ tưởng chinh của phưong pháp nãy là phản bãi toán cần giải thành cãc bài Phân tích thiết kế thuật toánBÀI 4 : PHƯƠNG PHÁP CHIA ĐẺ TRỊMã bài : ITPRG3_12.4Giới thiệuMặc dù không tổn tại một phương pháp vạn năng nào có thề giú Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề là đã có thuật giãi, hoặc là có thế dễ dàng đưa ra thuật giải, Sau đó ta tim cách két hợp cãc nghiệm cùa cãc bãi toàn con đề nhận được nghiệm cùa bài toán con lớn hơn, đẻ cuối cùng nhận được nghiệm cùa bãi toán cằn giãi. Thông thường các bài toán110Phân tích thiết kế thuật toáncon nhặn được trong q Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề uà trinh phân chia lã củng dạng với bãi toán ban đầu. chi cõ cỡ cùa chúng là nhó hơn. Trong các trường hợp như thể, thuật toán tim ra được có thế biếuGiáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
diễn một cách tự nhiên bời thù tục đệ quy.Sau đây là lược đồ phương pháp chia để trị.procedure DivideConquer(A,x);{Tim nghiệm X cùa bãi toán AJ beginPhân tích thiết kế thuật toánBÀI 4 : PHƯƠNG PHÁP CHIA ĐẺ TRỊMã bài : ITPRG3_12.4Giới thiệuMặc dù không tổn tại một phương pháp vạn năng nào có thề giú Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề ãi toàn conA1 để nhận được nghiệm X cùa bãi toán A end;end;Trong thủ tục trên, Solve là thuât giải bài toán A trong trường hợp A có cỡ đủ nhỏ.Thuật toán tìm kiếm nhị phân má chúng ta đã biết là thuật toán được thiết kế dựa trên chiến lươc chia để trị. Cho màng A[1...n] được sắp xếp theo thứ tự tâng Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề dần. A[ 1 ] < [2J...< A[n]. Với X cho trước, ta cần xác định xem X có chứa trong màng A[1...n] hay không, tức là có hay không chì số 1 < i < n, sao chGiáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
o A[i] = X. Phương pháp chia dể trị gợi ý ta chia màng A[1...n] thành 3 màng con A[1...k-1 ], màng con gồm một thành phần duy nhất A[k] vã mảng con A[Phân tích thiết kế thuật toánBÀI 4 : PHƯƠNG PHÁP CHIA ĐẺ TRỊMã bài : ITPRG3_12.4Giới thiệuMặc dù không tổn tại một phương pháp vạn năng nào có thề giú Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề và i = k. Nểu X < A[kj thì ta chí cần tim trên máng con A[1 còn nếu X > A[kJ ta chí cằn tim kiếm trên máng con A[k + 1...nJ. Đẻ tim kiếm X trên máng con A[1...k - 1] hoặc A[k +1... nj ta lại áp dụng cách phân chia như đâ làm với máng A[1...nJ.Thuật toán sẳp xẻp nhanh (Quicksort) cũng được thiết kề Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề bời kỹ thuật chia dể trị. Sau dãy chúng ta sẽ đưa ra một số ví dụ minh họa cho kỹ thuật chia đế trị..14. Tim max và minCho màng Af1...nl, chúng ta cằnGiáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
tim thành phản nhô nhất và lởn nhảt cùa màng này. Đảy lả bài toán rát đơn gián có thế giái bằng các thuật toán khác nhau, trong đó có thuật giãi bằngPhân tích thiết kế thuật toánBÀI 4 : PHƯƠNG PHÁP CHIA ĐẺ TRỊMã bài : ITPRG3_12.4Giới thiệuMặc dù không tổn tại một phương pháp vạn năng nào có thề giú Giáo trình Phân tích thiết kế thuật toán (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề ảnh max. min với các thành phần A[i] với 2ĩ.i<.n, và cập nhặt max, min một cảch thích ứng.Thuật toán được mó tả bôi thù tục sau :Phân tích thiết kế thuật toánBÀI 4 : PHƯƠNG PHÁP CHIA ĐẺ TRỊMã bài : ITPRG3_12.4Giới thiệuMặc dù không tổn tại một phương pháp vạn năng nào có thề giúGọi ngay
Chat zalo
Facebook