1. Trang chủ
  2. » Cao đẳng - Đại học

Bài giảng Cơ sở lập trình nâng cao - Chương 6: Phương pháp thiết kế thuật toán − chia để trị

10 21 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 62,08 KB

Nội dung

quá trình phân chia sẽ cùng dạng với bài toán ban đầu, chỉ khác nhau về kích thước. – Có thể có một số bài toán con không cùng[r]

(1)

CƠ SỞ LẬP TRÌNH NÂNG CAO

Biên soạn: Ths.Tôn Quang Toại TonQuangToai@yahoo.com

TPHCM, NĂM 2013

(2)

PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN

− CHIA ĐỂ TRỊ −

(3)

Nội dung

• Giới thiệu

(4)(5)

Giới thiệu

• Chia để trị phương pháp thiết kế thuật

toán từ xuống (top – down) với ý tưởng:

– Chia toán lớn thành tốn nhỏ

hơn có dạng giống toán ban đầu

– Các toán nhỏ chia thành

bài toán nhỏ nữavới hy vọng

(6)

Phương pháp

• Phương pháp Chia để trị gồm bước:

– Bước [Divide] – Chia toán thành

phần

– Bước [Solve] – Giải phần

– Bước [Combine] – Kết hợp lời giải

(7)

Phương pháp

• Nhận xét quan trọng:

– Các toán (các phần) nhận

quá trình phân chia dạng với tốn ban đầu, khác kích thước

– Có thể có số tốn khơng

dạng với tốn lớn

(8)

Sơ đồ cài đặt

• Cài đặt phương pháp Đệ qui

void DivideConquer(A, x)

{

if (A du nho) Solve(A)

else

{

- Phan chia A A0, A1, …, An-1

- for (i=0; i<n; i++)

DivideConquer(Ai, xi)

- Ket hop cac nghiem xi de duoc nghiem x }

(9)

Các ví dụ

• Ví dụ [Sorting 1]: Cho dãy a1, a2, …,

an Hãy xây dựng thuật toán xếp dãy tăng dần

n-1 Phần tử cuối

(10)

Các ví dụ

– Bước 2: Solve

Sorted

Ngày đăng: 09/03/2021, 06:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w