Le Minh Hoang - Giai thuat va lap trinh, DHSP HN 2002

332 5 0
Le Minh Hoang - Giai thuat va lap trinh, DHSP HN 2002

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LÊ MINH HOÀNG BÀI GI NG CHUYÊN : GI I THU T VÀ L P TRÌNH Bài gi ng chuyên đ i h c S ph m Hà N i, 1999-2002 Try not to become a man of success but rather to become a man of value Albert Einstein i M CL C PH N BÀI TOÁN LI T KÊ §1 NH C L I M T S KI N TH C IS T H P 1.1 CH NH H P L P 1.2 CH NH H P KHÔNG L P 1.3 HOÁN V 1.4 T H P §2 PH NG PHÁP SINH (GENERATION) 2.1 SINH CÁC DÃY NH PHÂN DÀI N 2.2 LI T KÊ CÁC T P CON K PH N T 2.3 LI T KÊ CÁC HOÁN V §3 THU T TỐ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 27 PH N C U TRÚC D §1 CÁC B CC LI U VÀ GI I THU T 33 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 TỐ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 GI I THI U 40 2.2 CÁC KÝ PHÁP ÁNH GIÁ PH C T P TÍNH TỐN 40 2.3 XÁC NH PH C T P TÍNH TỐN C A GI I THU T 42 2.4 PH C T P TÍNH TỐN V I TÌNH TR NG D LI U VÀO 45 2.5 CHI PHÍ TH C HI N THU T TỐN 46 ii §3 QUY VÀ GI I THU T QUY 50 3.1 KHÁI NI M V QUY 50 3.2 GI I THU T QUY 50 3.3 VÍ D V GI I THU T QUY 51 3.4 HI U L C C A QUY .55 §4 C U TRÚC D LI U BI U DI N DANH SÁCH 58 4.1 KHÁI NI M DANH SÁCH 58 4.2 BI U DI N DANH SÁCH TRONG MÁY TÍNH 58 §5 NG N X P VÀ HÀNG I 64 5.1 NG N X P (STACK) .64 5.2 HÀNG I (QUEUE) .66 §6 CÂY (TREE) 70 6.1 NH NGH A 70 6.2 CÂY NH PHÂN (BINARY TREE) 71 6.3 BI U DI N CÂY NH PHÂN 73 6.4 PHÉP DUY T CÂY NH PHÂN 74 6.5 CÂY K_PHÂN 76 6.6 CÂY T NG QUÁT 77 §7 KÝ PHÁP TI N T , TRUNG T VÀ H U T 79 7.1 BI U TH C D I D NG CÂY NH PHÂN 79 7.2 CÁC KÝ PHÁP CHO CÙNG M T BI U TH C 79 7.3 CÁCH TÍNH GIÁ TR BI U TH C 79 7.4 CHUY N T D NG TRUNG T SANG D NG H U T 83 7.5 XÂY D NG CÂY NH PHÂN BI U DI N BI U TH C 86 §8 S P X P (SORTING) 87 8.1 BÀI TOÁN S P X P 87 8.2 THU T TOÁN S P X P KI U CH N (SELECTIONSORT) .89 8.3 THU T TOÁN S P X P N I B T (BUBBLESORT) 90 8.4 THU T TOÁN S P X P KI U CHÈN 90 8.5 SHELLSORT 92 8.6 THU T TOÁN S P X P KI U PHÂN O N (QUICKSORT) 93 8.7 THU T TOÁN S P X P KI U VUN NG (HEAPSORT) 99 8.8 S P X P B NG PHÉP M PHÂN PH I (DISTRIBUTION COUNTING) 102 8.9 TÍNH N NH C A THU T TOÁN S P X P (STABILITY) 103 8.10 THU T TOÁN S P X P B NG C S (RADIX SORT) 104 8.11 THU T TOÁN S P X P TR N (MERGESORT) 109 8.12 CÀI T .112 8.13 ÁNH GIÁ, NH N XÉT 119 §9 TÌM KI M (SEARCHING) 124 9.1 BÀI TỐN TÌM KI M 124 9.2 TÌM KI M TU N T (SEQUENTIAL SEARCH) .124 9.3 TÌM KI M NH PHÂN (BINARY SEARCH) 124 9.4 CÂY NH PHÂN TÌM KI M (BINARY SEARCH TREE - BST) .125 iii 9.5 PHÉP B M (HASH) 130 9.6 KHOÁ S V I BÀI TỐN TÌM KI M 130 9.7 CÂY TÌM KI M S H C (DIGITAL SEARCH TREE - DST) 131 9.8 CÂY TÌM KI M C S (RADIX SEARCH TREE - RST) 134 9.9 NH NG NH N XÉT CU I CÙNG 139 PH N QUY HO CH NG 141 §1 CÔNG TH C TRUY H I 142 1.1 VÍ D 142 1.2 C I TI N TH NH T 143 1.3 C I TI N TH HAI 144 1.4 CÀI T QUY 145 §2 PH NG PHÁP QUY HO CH NG 147 2.1 BÀI TOÁN QUY HO CH 147 2.2 PH NG PHÁP QUY HO CH NG 147 §3 M T S BÀI TOÁN QUY HO CH NG 151 3.1 DÃY CON N I U T NG DÀI NH T 151 3.2 BÀI TOÁN CÁI TÚI 156 3.3 BI N I XÂU 158 3.4 DÃY CON CÓ T NG CHIA H T CHO K 162 3.5 PHÉP NHÂN T H P DÃY MA TR N 166 3.6 BÀI T P LUY N T P 170 PH N CÁC THU T TỐN TRÊN §1 CÁC KHÁI NI M C TH 175 B N .176 1.1 NH NGH A TH (GRAPH) 176 1.2 CÁC KHÁI NI M 177 §2 BI U DI N TH TRÊN MÁY TÍNH 179 2.1 MA TR N K (ADJACENCY MATRIX) 179 2.2 DANH SÁCH C NH (EDGE LIST) 180 2.3 DANH SÁCH K (ADJACENCY LIST) 181 2.4 NH N XÉT 182 §3 CÁC THU T TỐN TÌM KI M TRÊN TH 184 3.1 BÀI TOÁN 184 3.2 THU T TỐN TÌM KI M THEO CHI U SÂU (DEPTH FIRST SEARCH) 185 3.3 THU T TỐN TÌM KI M THEO CHI U R NG (BREADTH FIRST SEARCH) 187 3.4 PH C T P TÍNH TỐN C A BFS VÀ DFS 190 §4 TÍNH LIÊN THƠNG C A TH 191 4.1 NH NGH A 191 4.2 TÍNH LIÊN THƠNG TRONG TH VƠ H NG 192 iv 4.3 TH Y VÀ THU T TOÁN WARSHALL 192 4.4 CÁC THÀNH PH N LIÊN THÔNG M NH 195 §5 VÀI NG D NG C A DFS BFS 206 5.1 XÂY D NG CÂY KHUNG C A TH 206 5.2 T P CÁC CHU TRÌNH C S C A TH 209 5.3 BÀI TOÁN NH CHI U TH 209 5.4 LI T KÊ CÁC KH P VÀ C U C A TH 213 §6 CHU TRÌNH EULER, NG I EULER, TH EULER 216 6.1 BÀI TOÁN CÁI C U 216 6.2 NH NGH A 216 6.3 NH LÝ 216 6.4 THU T TỐN FLEURY TÌM CHU TRÌNH EULER 217 6.5 CÀI T 218 6.6 THU T TOÁN T T H N 220 §7 CHU TRÌNH HAMILTON, NG I HAMILTON, TH HAMILTON 223 7.1 NH NGH A 223 7.2 NH LÝ 223 7.3 CÀI T 224 §8 BÀI TOÁN NG I NG N NH T 228 8.1 TH CÓ TR NG S 228 8.2 BÀI TOÁN NG I NG N NH T 228 8.3 TR NG H P TH KHƠNG CĨ CHU TRÌNH ÂM - THU T TỐN FORD BELLMAN 230 8.4 TR NG H P TR NG S TRÊN CÁC CUNG KHƠNG ÂM - THU T TỐN DIJKSTRA 232 8.5 THU T TOÁN DIJKSTRA VÀ C U TRÚC HEAP .235 8.6 TR NG H P TH KHÔNG CĨ CHU TRÌNH - S P X P TƠ PƠ 238 8.7 NG I NG N NH T GI A M I C P NH - THU T TOÁN FLOYD 241 8.8 NH N XÉT .243 §9 BÀI TỐN CÂY KHUNG NH NH T 248 9.1 BÀI TOÁN CÂY KHUNG NH NH T 248 9.2 THU T TOÁN KRUSKAL (JOSEPH KRUSKAL - 1956) 248 9.3 THU T TOÁN PRIM (ROBERT PRIM - 1957) 253 §10 BÀI TỐN LU NG C C I TRÊN M NG 257 10.1 CÁC KHÁI NI M 257 10.2 M NG TH NG D VÀ NG T NG LU NG 260 10.3 THU T TOÁN FORD-FULKERSON (L.R.FORD & D.R.FULKERSON - 1962) .263 10.4 THU T TOÁN PREFLOW-PUSH (GOLDBERG - 1986) 267 10.5 M T S M R NG 273 §11 BÀI TỐN TÌM B GHÉP C C I TRÊN TH HAI PHÍA 280 11.1 TH HAI PHÍA (BIPARTITE GRAPH) 280 11.2 BÀI TỐN GHÉP ƠI KHÔNG TR NG VÀ CÁC KHÁI NI M .280 11.3 THU T TOÁN NG M .281 11.4 CÀI T .282 v §12 BÀI TỐ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 288 12.1 BÀI TOÁN PHÂN CÔNG 288 12.2 PHÂN TÍCH 288 12.3 THU T TOÁN 289 12.4 BÀI TỐN TÌM B GHÉP C C I V I TR NG S C C I TRÊN TH HAI PHÍA 297 12.5 NÂNG C P 298 §13 BÀI TỐN TÌM B GHÉP C C I TRÊN TH 304 13.1 CÁC KHÁI NI M 304 13.2 THU T TOÁN EDMONDS (1965) 305 13.3 THU T TOÁN LAWLER (1973) 307 13.4 CÀI T 309 13.5 PH C T P TÍNH TỐN 313 TÀI LI U C THÊM 315 vi HÌNH V Hình 1: Cây tìm ki m quay lui tốn li t kê dãy nh phân .13 Hình 2: X p quân h u bàn c 8x8 .19 ng chéo B-TN mang ch s 10 đ Hình 3: ng chéo N-TB mang ch s 19 Hình 4: L u đ thu t gi i (Flowchart) 36 Hình 5: Ký pháp Θ l n, Ο l n Ω l n 41 Hình 6: Tháp Hà N i .54 Hình 7: C u trúc nút c a danh sách n i đ n 59 Hình 8: Danh sách n i đ n 59 Hình 9: C u trúc nút c a danh sách n i kép 61 Hình 10: Danh sách n i kép 61 Hình 11: Danh sách n i vòng m t h ng 61 Hình 12: Danh sách n i vịng hai h ng .62 Hình 13: Dùng danh sách vịng mơ t Queue 67 Hình 14: Di chuy n toa tàu 69 Hình 15: Di chuy n toa tàu (2) 69 Hình 16: Cây 70 Hình 17: M c c a nút 71 Hình 18: Cây bi u di n bi u th c 71 Hình 19: Các d ng nh phân suy bi n 72 Hình 20: Cây nh phân hoàn ch nh nh phân đ y đ 72 Hình 21: ánh s nút c a nh phân đ y đ đ bi u di n b ng m ng 73 Hình 22: Nh c m c a ph ng pháp bi u di n b ng m ng .73 Hình 23: C u trúc nút c a nh phân .74 Hình 24: Bi u di n b ng c u trúc liên k t .74 Hình 25: ánh s nút c a 3_phân đ bi u di n b ng m ng 76 Hình 26: Bi u di n t ng quát b ng m ng 77 Hình 27: C u trúc nút c a t ng quát 78 Hình 28: Bi u th c d i d ng nh phân 79 Hình 29: Vịng l p c a QuickSort 94 Hình 30: Tr ng thái tr c g i đ quy 95 Hình 31: Heap 100 Hình 32: Vun đ ng 100 Hình 33: o giá tr k[1] cho k[n] xét ph n l i 101 Hình 34: Vun ph n l i thành đ ng r i l i đ o tr k[1] cho k[n-1] 101 Hình 35: ánh s bit .104 Hình 36: Thu t tốn s p x p tr n .109 Hình 37: Cài đ t thu t toán s p x p v i d li u l n 121 vii Hình 38: Cây nh phân tìm ki m 126 Hình 39: Xóa nút BST 127 Hình 40 Xóa nút ch có m t nhánh BST 128 Hình 41: Xóa nút có c hai nhánh BST thay b ng nút c c ph i c a trái 128 Hình 42: Xóa nút có c hai nhánh BST thay b ng nút c c trái c a ph i 128 Hình 43: ánh s bit 131 Hình 44: Cây tìm ki m s h c 131 Hình 45: Cây tìm ki m c s 134 Hình 46: V i đ dài dãy bit z = 3, tìm ki m c s g m khoá 2, 4, sau thêm giá tr 135 Hình 47: RST ch a khoá 2, 4, 5, RST sau lo i b giá tr 136 Hình 48: Cây tìm ki m c s a) Trie tìm ki m c s b) 138 Hình 49: Hàm đ quy tính s Fibonacci 149 Hình 50: Tính tốn truy v t 152 Hình 51: Truy v t 160 Hình 52: Ví d v mơ hình đ th 176 Hình 53: Phân lo i đ th 177 Hình 54 180 Hình 55 181 Hình 56: th đ ng 184 Hình 57: Cây DFS 187 Hình 58: Cây BFS 190 Hình 59: th G thành ph n liên thông G1, G2, G3 c a 191 Hình 60: Kh p c u 191 Hình 61: Liên thơng m nh liên thông y u 192 Hình 62: th đ y đ 193 Hình 63: n đ th vơ h ng bao đóng c a 193 Hình 64: Ba d ng cung ngồi DFS 197 Hình 65: Thu t tốn Tarjan "b " DFS 199 Hình 66: ánh s l i, đ o chi u cung t BFS v i cách ch n đ nh xu t phát ng c l i v i th t t xong (th t 11, 10… 3, 2, 1) 204 Hình 67: th G m t s ví d khung T1, T2, T3 c a 208 Hình 68: Cây khung DFS (a) khung BFS (b) (M i tên ch chi u th m đ nh) 208 Hình 69: Phép đ nh chi u DFS 211 Hình 70: Phép đánh s ghi nh n cung ng c lên cao nh t 213 Hình 71: Mơ hình đ th c a tốn b y c u 216 Hình 72 217 Hình 73 217 Hình 74 223 Hình 75: Phép đánh l i ch s theo th t tôpô 238 Hình 76: Hai g c r1 r2 m i h p nh t chúng 249 viii Hình 77: M ng v i kh n ng thông qua (1 phát, thu) m t lu ng c a v i giá tr 257 Hình 78: M ng G m ng th ng d Gf t ng ng (ký hi u f[u,v]:c[u,v] ch lu ng f[u, v] kh n ng thông qua c[u, v] cung (u, v)) 261 Hình 79: M ng th ng d đ Hình 80: Lu ng m ng G tr ng t ng lu ng 262 c sau t ng 262 Hình 81: M ng gi c a m ng có nhi u m phát nhi u m thu 273 Hình 82: Thay m t đ nh u b ng hai đ nh uin, uout 274 Hình 83: M ng gi c a m ng có kh n ng thông qua c a cung b ch n hai phía 274 Hình 84: th hai phía 280 Hình 85: th hai phía b ghép M .281 Hình 86: Mơ hình lu ng c a tốn tìm b ghép c c đ i đ th hai phía 285 Hình 87: Phép xoay tr ng s c nh .289 Hình 88: Thu t toán Hungari .292 Hình 89: Cây pha "m c" l n h n sau m i l n xoay tr ng s c nh tìm đ Hình 90: ng 299 th G m t b ghép M 304 Hình 91: Phép ch p Blossom .306 Hình 92: N Blossom đ dò đ ng xuyên qua Blossom .306 ... nh n) c a x[k] n, c a x[k-1] n - 1, c a x[k-2] n - 2… T ng quát: gi i h n c a x[i] = n - k + i; Còn t t nhiên, gi i h n d i c a x[i] (giá tr nh nh t x[i] có th nh n) x[i-1] + Nh v y n u ta có m... TRÌNH EULER, NG I EULER, TH EULER 216 6.1 BÀI TOÁN CÁI C U 216 6.2 NH NGH A 216 6.3 NH LÝ 216 6.4 THU T TOÁN FLEURY TÌM CHU TRÌNH EULER ... Ho c t n t i m t s nguyên d ng k: ≤ k < n đ : a[1] = b[1] a[2] = b[2] HSPHN 199 9-2 004 Bài toán li t kê … a[k-1] = b[k-1] a[k] = b[k] a[k+1] < b[k+1] Trong tr ng h p này, ta có th vi t a < b Th

Ngày đăng: 17/11/2016, 22:24

Tài liệu cùng người dùng

Tài liệu liên quan