Header Ads

Sách giải thuật và lập trình (Lê Minh Hoang)

Sách giải thuật và lập trình (Lê Minh Hoang)
Download: Click here

Mục Lục
Phần 1. Bài Toán Liệt Kê . 1
§1. Nhắc Lại Một Sốkiến Thức Đại Sốtổhợp .2
1.1. Chỉnh Hợp Lặp .2
1.2. Chỉnh Hợp Không Lặp.2
1.3. Hoán Vị.2
1.4. Tổhợp.3
§2. Phương Pháp Sinh (Generation) .4
2.1. Sinh Các Dãy Nhịphân Độdài N .5
2.2. Liệt Kê Các Tập Con K Phần Tử.6
2.3. Liệt Kê Các Hoán Vị.8
§3. Thuật Toán Quay Lui .12
3.1. Liệt Kê Các Dãy Nhịphân Độdài N.12
3.2. Liệt Kê Các Tập Con K Phần Tử.13
3.3. Liệt Kê Các Chỉnh Hợp Không Lặp Chập K .15
3.4. Bài Toán Phân Tích Số.16
3.5. Bài Toán Xếp Hậu .18
§4. Kỹthuật Nhánh Cận .24
4.1. Bài Toán Tối Ưu.24
4.2. Sựbùng Nổtổhợp .24
4.3. Mô Hình Kỹthuật Nhánh Cận.24
4.4. Bài Toán Người Du Lịch .25
4.5. Dãy Abc .28
Phần 2. Cấu Trúc Dữliệu Và Giải Thuật . 33
§1. Các Bước Cơbản Khi Tiến Hành Giải Các Bài Toán Tin Học.34
1.1. Xác Định Bài Toán.34
1.2. Tìm Cấu Trúc Dữliệu Biểu Diễn Bài Toán .34
1.3. Tìm Thuật Toán .35
1.4. Lập Trình .37
1.5. Kiểm Thử.37
1.6. Tối Ưu Chương Trình .38
§2. Phân Tích Thời Gian Thực Hiện Giải Thuật .40
2.1. Độphức Tạp Tính Toán Của Giải Thuật .40
2.2. Xác Định Độphức Tạp Tính Toán Của Giải Thuật .40
2.3. Độphức Tạp Tính Toán Với Tình Trạng Dữliệu Vào.43
2.4. Chi Phí Thực Hiện Thuật Toán.43
§3. Đệquy Và Giải Thuật Đệquy . 45
3.1. Khái Niệm Về Đệquy . 45
3.2. Giải Thuật Đệquy . 45
3.3. Ví Dụvềgiải Thuật Đệquy . 46
3.4. Hiệu Lực Của Đệquy . 50
§4. Cấu Trúc Dữliệu Biểu Diễn Danh Sách. 52
4.1. Khái Niệm Danh Sách . 52
4.2. Biểu Diễn Danh Sách Trong Máy Tính . 52
§5. Ngăn Xếp Và Hàng Đợi . 58
5.1. Ngăn Xếp (Stack). 58
5.2. Hàng Đợi (Queue). 60
§6. Cây (Tree). 64
6.1. Định Nghĩa . 64
6.2. Cây Nhịphân (Binary Tree) . 65
6.3. Biểu Diễn Cây Nhịphân . 67
6.4. Phép Duyệt Cây Nhịphân. 69
6.5. Cây K_Phân . 70
6.6. Cây Tổng Quát. 71
§7. Ký Pháp Tiền Tố, Trung Tốvà Hậu Tố. 74
7.1. Biểu Thức Dưới Dạng Cây Nhịphân . 74
7.2. Các Ký Pháp Cho Cùng Một Biểu Thức. 74
7.3. Cách Tính Giá Trịbiểu Thức . 75
7.4. Chuyển Từdạng Trung Tốsang Dạng Hậu Tố. 78
7.5. Xây Dựng Cây Nhịphân Biểu Diễn Biểu Thức. 80
§8. Sắp Xếp (Sorting) . 82
8.1. Bài Toán Sắp Xếp. 82
8.2. Thuật Toán Sắp Xếp Kiểu Chọn (Selectionsort) . 84
8.3. Thuật Toán Sắp Xếp Nổi Bọt (Bubblesort). 85
8.4. Thuật Toán Sắp Xếp Kiểu Chèn. 85
8.5. Shellsort. 87
8.6. Thuật Toán Sắp Xếp Kiểu Phân Đoạn (Quicksort) . 88
8.7. Thuật Toán Sắp Xếp Kiểu Vun Đống (Heapsort) . 92
8.8. Sắp Xếp Bằng Phép Đếm Phân Phối (Distribution Counting) . 95
8.9. Tính Ổn Định Của Thuật Toán Sắp Xếp (Stability) . 96
8.10. Thuật Toán Sắp Xếp Bằng Cơsố(Radixsort). 97
8.11. Thuật Toán Sắp Xếp Trộn (Mergesort). 102
8.12. Cài Đặt . 105
8.13. Đánh Giá, Nhận Xét. 112
§9. Tìm Kiếm (Searching) . 116
9.1. Bài Toán Tìm Kiếm.116
9.2. Tìm Kiếm Tuần Tự(Sequential Search) .116
9.3. Tìm Kiếm Nhịphân (Binary Search) .116
9.4. Cây Nhịphân Tìm Kiếm (Binary Search Tree - Bst) .117
9.5. Phép Băm (Hash).122
9.6. Khoá Sốvới Bài Toán Tìm Kiếm .122
9.7. Cây Tìm Kiếm Sốhọc (Digital Search Tree - Dst).123
9.8. Cây Tìm Kiếm Cơsố(Radix Search Tree - Rst) .126
9.9. Những Nhận Xét Cuối Cùng .131
Phần 3. Quy Hoạch Động . 133
§1. Công Thức Truy Hồi.134
1.1. Ví Dụ.134
1.2. Cải Tiến Thứnhất.135
1.3. Cải Tiến Thứhai.137
1.4. Cài Đặt Đệquy .137
§2. Phương Pháp Quy Hoạch Động .139
2.1. Bài Toán Quy Hoạch .139
2.2. Phương Pháp Quy Hoạch Động .139
§3. Một Sốbài Toán Quy Hoạch Động .143
3.1. Dãy Con Đơn Điệu Tăng Dài Nhất.143
3.2. Bài Toán Cái Túi.148
3.3. Biến Đổi Xâu .150
3.4. Dãy Con Có Tổng Chia Hết Cho K.154
3.5. Phép Nhân Tổhợp Dãy Ma Trận.159
3.6. Bài Tập Luyện Tập.163
Phần 4. Các Thuật Toán Trên Đồthị. 169
§1. Các Khái Niệm Cơbản .170
1.1. Định Nghĩa Đồthị(Graph).170
1.2. Các Khái Niệm.171
§2. Biểu Diễn Đồthịtrên Máy Tính.173
2.1. Ma Trận Liền Kề(Ma Trận Kề) .173
2.2. Danh Sách Cạnh.174
2.3. Danh Sách Kề.175
2.4. Nhận Xét.176
§3. Các Thuật Toán Tìm Kiếm Trên Đồthị.177
3.1. Bài Toán .177
3.2. Thuật Toán Tìm Kiếm Theo Chiều Sâu (Depth First Search).178
3.3. Thuật Toán Tìm Kiếm Theo Chiều Rộng (Breadth First Search) .184
3.4. Độphức Tạp Tính Toán Của Bfs Và Dfs . 189
§4. Tính Liên Thông Của Đồthị. 190
4.1. Định Nghĩa . 190
4.2. Tính Liên Thông Trong Đồthịvô Hướng. 191
4.3. Đồthị Đầy Đủvà Thuật Toán Warshall . 191
4.4. Các Thành Phần Liên Thông Mạnh . 195
§5. Vài Ứng Dụng Của Các Thuật Toán Tìm Kiếm Trên Đồthị. 205
5.1. Xây Dựng Cây Khung Của Đồthị. 205
5.2. Tập Các Chu Trình Cơbản Của Đồthị. 208
5.3. Định Chiều Đồthịvà Bài Toán Liệt Kê Cầu . 208
5.4. Liệt Kê Khớp . 214
§6. Chu Trình Euler, Đường Đi Euler, Đồthịeuler . 218
6.1. Bài Toán 7 Cái Cầu . 218
6.2. Định Nghĩa . 218
6.3. Định Lý . 218
6.4. Thuật Toán Fleury Tìm Chu Trình Euler. 219
6.5. Cài Đặt . 220
6.6. Thuật Toán Tốt Hơn . 222
§7. Chu Trình Hamilton, Đường Đi Hamilton, Đồthịhamilton . 225
7.1. Định Nghĩa . 225
7.2. Định Lý . 225
7.3. Cài Đặt . 226
§8. Bài Toán Đường Đi Ngắn Nhất . 230
8.1. Đồthịcó Trọng Số.230
8.2. Bài Toán Đường Đi Ngắn Nhất . 230
8.3. Trường Hợp Đồthịkhông Có Chu Trình Âm - Thuật Toán Ford Bellman . 232
8.4. Trường Hợp Trọng Sốtrên Các Cung Không Âm - Thuật Toán Dijkstra. 234
8.5. Thuật Toán Dijkstra Và Cấu Trúc Heap . 237
8.6. Trường Hợp Đồthịkhông Có Chu Trình - Thứtựtô Pô . 240
8.7. Đường Đi Ngắn Nhất Giữa Mọi Cặp Đỉnh - Thuật Toán Floyd. 242
8.8. Nhận Xét . 245
§9. Bài Toán Cây Khung Nhỏnhất . 247
9.1. Bài Toán Cây Khung Nhỏnhất . 247
9.2. Thuật Toán Kruskal (Joseph Kruskal - 1956) . 247
9.3. Thuật Toán Prim (Robert Prim - 1957). 252
§10. Bài Toán Luồng Cực Đại Trên Mạng. 256
10.1. Bài Toán . 256
10.2. Lát Cắt, Đường Tăng Luồng, Định Lý Ford - Fulkerson. 256
10.3. Cài Đặt . 258
10.4. Thuật Toán Ford - Fulkerson (L.R.Ford & D.R.Fulkerson - 1962).262
§11. Bài Toán Tìm Bộghép Cực Đại Trên Đồthịhai Phía .266
11.1. Đồthịhai Phía (Bipartite Graph) .266
11.2. Bài Toán Ghép Đôi Không Trọng Và Các Khái Niệm.266
11.3. Thuật Toán Đường Mở.267
11.4. Cài Đặt .268
§12. Bài Toán Tìm Bộghép Cực Đại Với Trọng Sốcực Tiểu Trên Đồthịhai
Phía - Thuật Toán Hungari .273
12.1. Bài Toán Phân Công .273
12.2. Phân Tích .273
12.3. Thuật Toán .274
12.4. Cài Đặt .278
12.5. Bài Toán Tìm Bộghép Cực Đại Với Trọng Sốcực Đại Trên Đồthịhai Phía .284
12.6. Nâng Cấp.284
§13. Bài Toán Tìm Bộghép Cực Đại Trên Đồthị.290
13.1. Các Khái Niệm.290
13.2. Thuật Toán Edmonds (1965) .291
13.3. Phương Pháp Lawler (1973) .293
13.4. Cài Đặt .295
13.5. Độphức Tạp Tính Toán .299
Tài Liệu Đọc Thêm . 301


No comments