Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Một vài kỹ thuật lập trình potx
MIỄN PHÍ
Số trang
10
Kích thước
221.2 KB
Định dạng
PDF
Lượt xem
1381

Một vài kỹ thuật lập trình potx

Nội dung xem thử

Mô tả chi tiết

Một vài kỹ thuật lập trình

Ngày gửi bài: 19/01/2006

So luot doc: 1318

Bài viết này là lược dịch từ chương 10 ″Algorithm Design Techniques″ của quyển sách

nổi tiếng ″Data Structure and Algorithms″ của các tác giả Aho A.V., Hopcroft J.E. và

Ullman J.D. Tiêu đề do người biên soạn bài viết tự đặt.

Các bạn trẻ thân mến.

Thuật toán, kỹ thuật lập trình luôn là một điều bí ẩn và hấp dẫn đối với các bạn trẻ, các

bạn học sinh và sinh viên đang ngồi trên ghế nhà trường. Nhiều bài toán khó, đa dạng

tưởng chừng như không thể tìm được lời giải lại ẩn chứa bên trong những thuật toán đơn

giản, tuyệt đẹp đến không ngờ. Cuốn sách ″Data Structure and Algorithms″ của các tác

giả Aho A.V., Hopcroft J.E. và Ullman J.D đã ra đời cách đây 20 năm nhưng giờ đây đọc

lại vẫn thấy rất mới mẻ và chứa đựng nhiều ý tưởng hay. Đặc biệt chương ″Một vài kỹ

thuật thiết kế thuật toán″ chứa đựng nhiều ý tưởng xác định cho toàn bộ định hướng

nghiên cứu và giải quyết bài toán của ngày hôm nay. Nhân dịp số báo đặc biệt Tết Quí

Mùi, chúng tôi chân trọng giới thiệu với bạn đọc, đặc biệt là các bạn học sinh, sinh viên

chuyên tin lược dịch của chương này. Trong quá trình biên soạn, chúng tôi đã thay đổi

chút ít cho phù hợp với đối tượng của độc giả Tin học & Nhà trường. Trong khi trình bày

thuật toán các tác giả đã sử dụng khá nhiều kỹ thuật phân tích đánh giá độ phức tạp, đối

với các bạn lần đầu làm quen với những khái niệm này có thể hoàn toàn bỏ qua chúng mà

không ảnh hưởng gì đến việc đọc các phần khác của bài viết. Chúc các bạn một năm mới

với nhiều sáng tạo mới, và mong rằng những ý tưởng của bài viết này được các bạn tiếp

nhận và áp dụng sáng tạo trong công việc của mình.

1. Thuật toán Chia để Trị (Divide & Conquer)

Có lẽ thuật toán được sử dụng nhiều nhất, quan trọng nhất là kỹ thuật ″Chia để Trị″. Kỹ

thuật này sẽ chia bài toán hiện thời thành N bài toán nhỏ hơn, thực hiện lời giải cho từng

bài toán nhỏ này và từ đó xây dựng thuật toán cho bài toán lớn tổng hợp. Ví dụ cho các

thuật toán này là Sắp xếp Trộn(1) hoặc Tìm kiếm Nhị phân(2) mà các bạn đã đã được biết

trong chương trình Tin học Cơ bản.

Để minh họa rõ hơn cho kỹ thuật này chúng ta hãy xét một ví dụ quen thuộc đó là bài

toán ″Tháp Hà Nội″. Giả sử có 3 cọc A, B, C. Ban đầu tại A đặt một số đĩa với thứ tự trên

nhỏ dưới to như hình vẽ.

Tải ngay đi em, còn do dự, trời tối mất!