DANH MỤC TÀI LIỆU
Kỹ thuật giải thuật trong lập trình và ứng dụng
Th.s. NGUYN VĂN LINH
GII THUT
Được biên son trong khuôn kh d án ASVIET002CNTT
”Tăng cường hiu qu đào to và năng lc t đào to ca sinh viên
khoa Công ngh Thông tin - Đại hc Cn thơ
ĐẠI HC CN THƠ - 12/2003
LI NÓI ÐU
N. Wirth, mt nhà khoa hc máy tính ni tiếng, tác gi ca ngôn
ng lp trình Pascal, đã đặt tên cho mt cun sách ca ông là
“Cu trúc d liu + Gii thut = Chương trình”.
Ðiu đó nói lên tm quan trng ca gii thut trong lp trình nói
riêng và trong khoa hc máy tính nói chung. Vì l đó gii thut, vi tư
cách là mt môn hc, cn phi được sinh viên chuyên ngành tin hc
nghiên cu mt cách có h thng.
Môn hc “Gii thut được b trí sau môn “Cu trúc d liu”
trong chương trình đào to k sư tin hc nhm gii thiu cho sinh viên
nhng kiến thc cơ bn nht, nhng k thut ch yếu nht ca vic
PHÂN TÍCH và THIT K gii thut. Các k thut được trình bày
đây đã được các nhà khoa hc tin hc tng kết và vn dng trong cài đặt
các chương trình. Vic nm vng các k thut đó s rt b ích cho sinh
viên khi phi gii quyết mt vn đề thc tế.
Giáo trình này được hình thành trên cơ s tham kho cun sách
“Data Structure and Algorithms” ca A.V Aho, nhng kinh nghim
ging dy ca bn thân và các bn đồng nghip.
Mc dù đã có nhiu c gng trong quá trình biên son nhưng chc
chn còn nhiu thiếu sót, rt mong nhn được s đóng góp ca quý bn
đọc.
Cn thơ, ngày 8 tháng 12 năm 2003
Nguyn Văn Linh
Gii thut Mc lc
MC LC
................................................. i PHN TNG QUAN
.......................... 1 Chương 1: KĨ THUT PHÂN TÍCH GII THUT
1.1 ................................................................................................................... 1 TNG QUAN
1.2 ....................................................... 2 S CN THIT PHI PHÂN TÍCH GII THUT
1.3 .............................................................. 2 THI GIAN THC HIN CA GII THUT
1.4 .......................................... 3 T SUT TĂNG VÀ Ð PHC TP CA GII THUT
1.5 .......................................................................................... 4 CÁCH TÍNH Ð PHC TP
1.6 ............................................................. 7 PHÂN TÍCH CÁC CHƯƠNG TRÌNH Ð QUY
1.7 ............................................................................................... 16 TNG KT CHƯƠNG 1
................................................................................................................. 16 BÀI TP CHƯƠNG 1
............................................. 18 Chương 2: SP XP
2.1 ................................................................................................................. 18 TNG QUAN
2.2 ..................................................................................................... 19 BÀI TOÁN SP XP
2.3 .............................................................. 20 CÁC PHƯƠNG PHÁP SP XP ÐƠN GIN
2.4 ................................................................................................................. 25 QUICKSORT
2.5 .................................................................................................................... 31 HEAPSORT
2.6 ....................................................................................................................... 39 BINSORT
2.7 ............................................................................................... 44 TNG KT CHƯƠNG 2
................................................................................................................. 44 BÀI TP CHƯƠNG 2
........................... 45 Chương 3: KĨ THUT THIT K GII THUT
3.1 ................................................................................................................. 45 TNG QUAN
3.2 ............................................................................................. 45 KĨ THUT CHIA Ð TR
3.3 ............................................................................................... 50 KĨ THUT “THAM ĂN”
3.4 .................................................................................................... 56 QUY HOCH ÐNG
3.5 ................................................................................................. 63 KĨ THUT QUAY LUI
3.6 ........................................................................ 78 KĨ THUT TÌM KIM ÐA PHƯƠNG
3.7 ............................................................................................... 82 TNG KT CHƯƠNG 3
................................................................................................................. 82 BÀI TP CHƯƠNG 3
......... 85 Chương 4: CU TRÚC D LIU VÀ GII THUT LƯU TR NGOÀI
4.1 ................................................................................................................. 85 TNG QUAN
4.2 ............................................................................................ 85 MÔ HÌNH X LÝ NGOÀI
4.3 ......................................................... 86 ÐÁNH GIÁ CÁC GII THUT X LÝ NGOÀI
4.4 ........................................................................................................... 87 SP XP NGOÀI
4.5 ................................................................. 93 LƯU TR THÔNG TIN TRONG TP TIN
4.6 ............................................................................................. 103 TNG KT CHƯƠNG 4
............................................................................................................... 104 BÀI TP CHƯƠNG 4
Gii thut Tng quan
PHN TNG QUAN
1. Mc đích yêu cu
Môn hc gii thut cung cp cho sinh viên mt khi lượng kiến thc tương đối
hoàn chnh v phân tích và thiết kế các gii thut lp trình cho máy tính. Sau khi
hc xong môn hc này, sinh viên cn:
- Nm được khái nim thi gian thc hin ca chương trình, độ phc tp ca
gii thut. Biết cách phân tích, đánh giá gii thut thông qua vic tính độ
phc tp.
- Nm đưc các gii thut sp xếp và phân tích đánh giá đưc các gii thut
sp xếp.
- Nm được các kĩ thut thiết kế gii thut, vn dng vào vic gii mt s bài
toán thc tế.
- Nm được các phương pháp t chc lưu tr thông tin trong tp tin và các gii
thut tìm, xen, xoá thông tin trong tp tin.
2. Đối tượng s dng
Môn hc gii thut được dùng để ging dy cho các sinh viên sau:
- Sinh viên năm th 3 chuyên ngành Tin hc.
- Sinh viên năm th 3 chuyên ngành Đin t (Vin thông, T động hoá…)
- Sinh viên Toán-Tin.
3. Ni dung ct lõi
Trong khuôn kh 45 tiết, giáo trình được cu trúc thành 4 chương
- Chương 1: Kĩ thut phân tích đánh giá gii thut. Chương này đặt vn đề ti
sao cn phi phân tích, đánh giá gii thut và phân tích đánh giá theo phương
pháp nào. Ni dung chương 1 tp trung vào khái nim độ phc tp thi gian
ca gii thut và phương pháp tính độ phc tp gii thut ca mt chương
trình bình thường, ca chương trình có gi các chương trình con và ca các
chương trình đệ quy.
- Chương 2: Sp xếp. Chương này trình bày các gii thut sp xếp, mt thao
tác thường được s dng trong vic gii các bài toán máy tính. S có nhiu
gii thut sp xếp t đơn gin đến nâng cao s được gii thiu đây. Vi
mi gii thut, s trình bày ý tưởng gii thut, ví d minh ho, cài đặt chương
trình và phân tích đánh giá.
- Chương 3: Kĩ thut thiết kế gii thut. Chương này trình bày các kĩ thut
ph biến để thiết kế các gii thut. Các kĩ thut này gm: Chia để tr, Quy
hoch động, Tham ăn, Quay lui và Tìm kiếm địa phương. Vi mi kĩ thut s
trình bày ni dung kĩ thut và vn dung vào gii các bài toán khá ni tiếng
như bài toán người giao hàng, bài toán cái ba lô, bài toán cây ph ti thiu...
- Chương 4: Cu trúc d liu và gii thut lưu tr ngoài. Chương này trình
bày các cu trúc d liu được dùng để t chc lưu tr tp tin trên b nh
ngoài và các gii thut tìm kiếm, xen xoá thông tin trên các tp tin đó.
4. Kiến thc tiên quyết
Để hc tt môn hc gii thut cn phi có các kiến thc sau:
- Kiến thc toán hc.
- Kiến thc và kĩ năng lp trình căn bn.
Gii thut Tng quan
- Kiến thc v cu trúc d liu và các gii thut thao tác trên các cu trúc d
liu.
Trong chương trình đào to, Cu trúc d liu là môn hc tiên quyết ca môn Gii
thut.
5. Danh mc tài liu tham kho
[1] A.V. Aho, J.E. Hopcroft, J.D. Ullman; Data Structures and Algorithms;
Addison-Wesley; 1983.
[2] Jeffrey H Kingston; Algorithms and Data Structures; Addison-Wesley;
1998.
[3] Đinh Mnh Tường; Cu trúc d liu & Thut toán; Nhà xut bn khoa hc
và kĩ thut; Hà ni-2001.
[4] Đỗ Xuân Lôi; Cu trúc d liu & Gii thut; 1995.
[5] Nguyn Đức Nghĩa, Tô Văn Thành; Toán ri rc; 1997.
[6] Trang web phân tích gii thut: http://pauillac.inria.fr/algo/AofA/
[7] Trang web bài ging v gii thut:
http://www.cs.pitt.edu/~kirk/algorithmcourses/
[8] Trang tìm kiếm các gii thut:
http://oopweb.com/Algorithms/Files/Algorithms.html
Gii thut Kĩ thut phân tích gii thut
CHƯƠNG 1: KĨ THUT PHÂN TÍCH GII THUT
1.1 TNG QUAN
1.1.1 Mc tiêu
Sau khi hc chương này, sinh viên cn phi tr li được các câu hi sau:
- Ti sao cn phân tích đánh giá gii thut?
- Tiêu chun nào để đánh giá mt gii thut là tt?
- Phương pháp đánh giá như thế nào? (đánh giá chương trình không gi
chương trình con, đánh giá mt chương trình có gi các chương trình con
không đệ quy và đánh giá chương trình đệ quy).
1.1.2 Kiến thc cơ bn cn thiết
Các kiến thc cơ bn cn thiết để hc chương này bao gm:
- Kiến thc toán hc: Công thc tính tng n s t nhiên đầu tiên, công thc
tính tng n s hng đầu tiên ca mt cp s nhân, phương pháp chng minh
quy np và các kiến thc liên quan đến logarit (biến đổi logarit, tính cht
đồng biến ca hàm s logarit).
- Kĩ thut lp trình và lp trình đệ quy.
1.1.3 Tài liu tham kho
A.V. Aho, J.E. Hopcroft, J.D. Ullman. Data Structures and Algorithms. Addison-
Wesley. 1983. (Chapters 1, 9).
Jeffrey H Kingston; Algorithms and Data Structures; Addison-Wesley; 1998.
(Chapter 2).
Đinh Mnh Tường. Cu trúc d liu & Thut toán. Nhà xut bn khoa hc và kĩ
thut. Hà ni-2001. (Chương 1).
Trang web phân tích gii thut: http://pauillac.inria.fr/algo/AofA/
1.1.4 Ni dung ct lõi
Trong chương này chúng ta s nghiên cu các vn đề sau:
S cn thiết phi phân tích các gii thut.
Thi gian thc hin ca chương trình.
T sut tăng và độ phc tp ca gii thut.
Tính thi gian thc hin ca chương trình.
Phân tích các chương trình đệ quy.
Nguyn Văn Linh Trang 1
thông tin tài liệu
Tìm hiểu rõ hơn về các kỹ thuật giải thuật trong quá trình lập trình
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×