Kiến trúc máy tính - Part 13
Số trang: 39
Loại file: ppt
Dung lượng: 688.00 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tập S các phần tử được lưu bằng mảng hoặc danh sách liên kết. Thuật toán tìm kiếm: Xuất phát từ phần tử đầu của dãy, thực hiện so sánh khóa của nó với k. Nếu trùng nhau thì dừng lại, nếu không trùng thì lặp lại với phần tử tiếp theo. Quá trình dừng lại khi tìm thấy hoặc không còn phần tử nào nữa. Khi đó thông báo không tìm thấy.
Nội dung trích xuất từ tài liệu:
Kiến trúc máy tính - Part 13 Bài13.TìmkiếmSearchBàitoán Input:ChomộtdãyScácphầntử,mỗiphầntửlàmột bộgồmkhóagiatrị(keyvalue).Mộtkhóakbấtkỳ.Output:TrongScóphầntửcókhóakhaykhông? 1 SearchCácphươngpháptìmkiếm Tìmkiếmtuầntự(sequencesearch) Tìmkiếmnhịphân(Binarysearch) Bảngbăm(hashtable) 2 Search1.Tìmkiếmtuầntự TậpScácphầntửđượclưubằngmảng hoặcdanhsáchliênkết. Thuậttoántìmkiếm:• Xuất phát từ phần tử đầu của dãy, thực hiện so sánhkhóa của nó với k. Nếu trùng nhau thì dừng lại, nếukhôngtrùngthìlặplạivớiphầntửtiếptheo.• Quátrìnhdừnglạikhitìmthấyhoặckhôngcònphầntửnàonữa.Khiđóthôngbáokhôngtìmthấy. 3 SearchVídụ1 ChodãyS: 0 45 3 34 13 7 43 9 11 Tìmxemtrongdãycóphầntửk=33 Quátrìnhtìmkiếm 0 45 3 34 13 7 43 9 11Bước1 Bước2 Bước3 Bước4 Bước5 Bước6 Bước7 Bước8 Bước9 •Khôngtìmthấy 4 SearchVídụ2 ChodãyS: 0 45 3 34 13 7 43 9 11 Tìmxemtrongdãycóphầntửk=13 Quátrìnhtìmkiếm 0 45 3 34 13 7 43 9 11Bước1 Bước2 Bước3 Bước4 Bước5 •Tìmthấy,tạivịtrí5 5 SearchThuậttoánInput:Cho một dãy S các phần tử, mỗi phần tử là một bộ key và value. Một khóa k bất kỳ.Output:Trong S có phần tử có khóa k hay không?found = 0; i =1;while ((chưa duyệt hết S ) && (found= =0) ){ if (S[i].key == k) found =1; i = i+1;}return found; 6 SearchThờigianchạy Trongtrườnghợpxấunhấtthuậttoán phảiduyệtquatấtcảcácphầntửcủaS. VậythờigianchạylàO(n) 7 Search2.Tìmkiếmnhịphân TậpSđượctổchứclưutrữdựatrên mảng TậpSđượctổchứclưutrữdạngcâynhị phân 8 Search2.1Tìmkiếmnhịphântrênmảng CácphầntửcủaSđượclưutrữtrongmảngvàđược sắpxếptheothứtựtăngdần(giảmdần)củagiátrị khóa(key). Thuật toán tìm kiếm nhị phân được thiết kế dựa trênchiếnlượcchiavàtrị Thuậttoán:Sosánhkhóa k vớikhóacủaphầntử ởgiữadãy. •Nếutrùngthìthôngbáotìmthấyvàdừng •Nếuk>thìgọiđệquitìmtrênnửacuốidãy •NếukVídụ1•Chodãydướiđây.Tìmphầntửk=6 0 1 3 4 5 7 8 9 11 14 16 18 19 Bước1:6< 0 1 3 4 5 7 Bước2:6> 4 5 7 Bước3:6> 7 Bước4:6< Rỗng Khôngtìmthấy Bước5:6 10 SearchVídụ2•Chodãydướiđây.Tìmphầntửk=5 0 1 3 4 5 7 8 9 11 14 16 18 19 Bước1:5< 0 1 3 4 5 7 Bước2:5> 4 5 7 Tìmthấy Bước3:5= 11 SearchThuậttoántìmkiếmnhịphântrênmảngAlgorithmBinarySearch(S,k,n); Found=0; i=1; j=n; while(iThờigianchạy Saumỗilầntìmkiếm,thìdãycầntìmlại đượcchiađôivàtachỉphảitìmtrênmộtnửa Trongtrườnghợpxấunhấtlàkhôngtìmthấy phầntửcókhóak.Vànhưvậytaphảithực hiệnchiađôiliêntiếpđếnkhiđượcdãyrỗng. Sốlầnthựchiệnchiađôilà:log2n VậythờigianchạylàO(log2n) 13 Search2.2Tìmkiếmtrêncâytìmkiếmnhịphân Địnhnghĩa:câytìm 6 kiếmnhịphânlàcây < < nhịphânthỏamãn: 2 10 Nútchacókhóalớnhơn 8 ...
Nội dung trích xuất từ tài liệu:
Kiến trúc máy tính - Part 13 Bài13.TìmkiếmSearchBàitoán Input:ChomộtdãyScácphầntử,mỗiphầntửlàmột bộgồmkhóagiatrị(keyvalue).Mộtkhóakbấtkỳ.Output:TrongScóphầntửcókhóakhaykhông? 1 SearchCácphươngpháptìmkiếm Tìmkiếmtuầntự(sequencesearch) Tìmkiếmnhịphân(Binarysearch) Bảngbăm(hashtable) 2 Search1.Tìmkiếmtuầntự TậpScácphầntửđượclưubằngmảng hoặcdanhsáchliênkết. Thuậttoántìmkiếm:• Xuất phát từ phần tử đầu của dãy, thực hiện so sánhkhóa của nó với k. Nếu trùng nhau thì dừng lại, nếukhôngtrùngthìlặplạivớiphầntửtiếptheo.• Quátrìnhdừnglạikhitìmthấyhoặckhôngcònphầntửnàonữa.Khiđóthôngbáokhôngtìmthấy. 3 SearchVídụ1 ChodãyS: 0 45 3 34 13 7 43 9 11 Tìmxemtrongdãycóphầntửk=33 Quátrìnhtìmkiếm 0 45 3 34 13 7 43 9 11Bước1 Bước2 Bước3 Bước4 Bước5 Bước6 Bước7 Bước8 Bước9 •Khôngtìmthấy 4 SearchVídụ2 ChodãyS: 0 45 3 34 13 7 43 9 11 Tìmxemtrongdãycóphầntửk=13 Quátrìnhtìmkiếm 0 45 3 34 13 7 43 9 11Bước1 Bước2 Bước3 Bước4 Bước5 •Tìmthấy,tạivịtrí5 5 SearchThuậttoánInput:Cho một dãy S các phần tử, mỗi phần tử là một bộ key và value. Một khóa k bất kỳ.Output:Trong S có phần tử có khóa k hay không?found = 0; i =1;while ((chưa duyệt hết S ) && (found= =0) ){ if (S[i].key == k) found =1; i = i+1;}return found; 6 SearchThờigianchạy Trongtrườnghợpxấunhấtthuậttoán phảiduyệtquatấtcảcácphầntửcủaS. VậythờigianchạylàO(n) 7 Search2.Tìmkiếmnhịphân TậpSđượctổchứclưutrữdựatrên mảng TậpSđượctổchứclưutrữdạngcâynhị phân 8 Search2.1Tìmkiếmnhịphântrênmảng CácphầntửcủaSđượclưutrữtrongmảngvàđược sắpxếptheothứtựtăngdần(giảmdần)củagiátrị khóa(key). Thuật toán tìm kiếm nhị phân được thiết kế dựa trênchiếnlượcchiavàtrị Thuậttoán:Sosánhkhóa k vớikhóacủaphầntử ởgiữadãy. •Nếutrùngthìthôngbáotìmthấyvàdừng •Nếuk>thìgọiđệquitìmtrênnửacuốidãy •NếukVídụ1•Chodãydướiđây.Tìmphầntửk=6 0 1 3 4 5 7 8 9 11 14 16 18 19 Bước1:6< 0 1 3 4 5 7 Bước2:6> 4 5 7 Bước3:6> 7 Bước4:6< Rỗng Khôngtìmthấy Bước5:6 10 SearchVídụ2•Chodãydướiđây.Tìmphầntửk=5 0 1 3 4 5 7 8 9 11 14 16 18 19 Bước1:5< 0 1 3 4 5 7 Bước2:5> 4 5 7 Tìmthấy Bước3:5= 11 SearchThuậttoántìmkiếmnhịphântrênmảngAlgorithmBinarySearch(S,k,n); Found=0; i=1; j=n; while(iThờigianchạy Saumỗilầntìmkiếm,thìdãycầntìmlại đượcchiađôivàtachỉphảitìmtrênmộtnửa Trongtrườnghợpxấunhấtlàkhôngtìmthấy phầntửcókhóak.Vànhưvậytaphảithực hiệnchiađôiliêntiếpđếnkhiđượcdãyrỗng. Sốlầnthựchiệnchiađôilà:log2n VậythờigianchạylàO(log2n) 13 Search2.2Tìmkiếmtrêncâytìmkiếmnhịphân Địnhnghĩa:câytìm 6 kiếmnhịphânlàcây < < nhịphânthỏamãn: 2 10 Nútchacókhóalớnhơn 8 ...
Tìm kiếm theo từ khóa liên quan:
tài liệu học đại học giáo trình đại cương đề cương bài giảng Kiến trúc máy tính giáo trình tin học phần mềm tin họcGợi ý tài liệu liên quan:
-
Giáo trình Tin học (Trình độ: Trung cấp nghề) - Trường Trung cấp nghề Củ Chi
268 trang 336 4 0 -
25 trang 327 0 0
-
67 trang 301 1 0
-
Đề cương bài giảng Phương pháp nghiên cứu khoa học - Trường Đại học Công nghiệp dệt may Hà Nội
74 trang 275 0 0 -
Đề cương chi tiết bài giảng môn Đảm bảo và an toàn thông tin
25 trang 272 0 0 -
Đề cương chi tiết học phần: Sáng tác mẫu trên phần mềm tin học - ĐH Kinh tế-Kỹ thuật Công nghiệp
10 trang 245 0 0 -
Giáo trình Kiến trúc máy tính và quản lý hệ thống máy tính: Phần 1 - Trường ĐH Thái Bình
119 trang 236 0 0 -
122 trang 215 0 0
-
105 trang 206 0 0
-
84 trang 202 2 0