Tìm kiếm và sắp xếp
lượt xem 3
download
Trong hầu hết các hệ lưu trữ, quản lý dữ liệu, thao tác tìm kiếm thường được thực hiện nhất để khai thác thông tin. Do các hệ thống thông tin thường phải lưu trữ một khối lượng dữ liệu đáng kể, nên việc xây dựng các giải thuật cho phép tìm kiếm nhanh sẽ có ý nghĩa rất lớn. Nếu dữ liệu trong hệ thống đã được tổ chức theo một trật tự nào đó, thì việc tìm kiếm sẽ tiến hành nhanh chóng và hiệu quả hơn....
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Tìm kiếm và sắp xếp
- Tìm kieám &Saép xeáp
- Tìm kieám & Saép xeáp Muïc tieâu: Giôùi thieäu moät soá thuaät toaùn tìm kieám vaø saép xeáp noäi. Phaân tích, ñaùnh giaù ñoä phöùc taïp cuûa caùc giaûi thuaät tìm kieám, saép xeáp. Noäi dung: Nhu caàu tìm kieám vaø saép xeáp döõ lieäu trong moät heä thoáng thoâng tin. Caùc giaûi thuaät tìm kieám noäi. Caùc giaûi thuaät saép xeáp noäi. Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 2
- Nhu caàu tìm kieám vaø saép xeáp döõ lieäu trong 1 heä thoáng thoâng tinheát caùc heä löu tröõ, quaûn lyù Trong haàu döõ lieäu, thao taùc tìm kieám thöôøng ñöôïc thöïc hieän nhaát ñeå khai thaùc thoâng tin. Do caùc heä thoáng thoâng tin thöôøng phaûi löu tröõ moät khoái löôïng döõ lieäu ñaùng keå, neân vieäc xaây döïng caùc giaûi thuaät cho pheùp tìm kieám nhanh seõ coù yù nghóa raát lôùn. Neáu döõ lieäu trong heä thoáng ñaõ ñöôïc toå chöùc theo moät traät töï naøo ñoù, thì vieäc tìm kieám seõ tieán haønh nhanh choùng vaø hieäu quaû hôn Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 3
- Nhu caàu tìm kieám vaø saép xeáp döõ lieäu trong 1 heä thoáng thoâng tingiaûi thuaät tìm kieám vaø saép Coù nhieàu xeáp Möùc ñoä hieäu quaû cuûa töøng giaûi thuaät phuï thuoäc vaøo tính chaát cuûa caáu truùc döõ lieäu cuï theå maø noù taùc ñoäng ñeán. Döõ lieäu ñöôïc löu tröõ chuû yeáu trong boä nhôù chính vaø treân boä nhôù phuï, do ñaëc ñieåm khaùc nhau cuûa thieát bò löu tröõ, caùc thuaät toaùn tìm kieám vaø saép xeáp ñöôïc xaây döïng cho caùc caáu truùc löu tröõ treân boä nhôù chính hoaëc phuï cuõng coù nhöõng ñaëc thuø khaùc nhau. Chöông naøy seõ trình baøy caùc thuaät toaùn Caáu truùc saép Döõ lieäu -xeáp vaø Tìm kieám tìm vaø Saép xeápkieám döõ lieäu ñöôïc löu 4
- Caùc giaûi thuaät tìm kieám noäi Tìm kieám tuaàn töï Tìm kieám nhò phaân
- Caùc giaûi thuaät tìm kieám noäi Baøi toaùn: Tìm vò trí xuaát hieän cuûa phaàn töû coù giaù trò x treân danh saùch ñaëc a Taäp döõ lieäu ñöôïc löu tröõ laø daõy soá a1, a2, ... ,aN int a[N]; Khoaù caàn tìm laø x int x; Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 6
- Tìm kieám tuaàn töï
- Tìm kieám tuaàn töï Böôùc 1: i = Vò trí ñaàu; Böôùc 2: Neáu a[i] = x : Tìm thaáy. Döøng, vò trí xuaát hieän: i Böôùc 3 : i = Vò trí keá(i);// xeùt tieáp phaàn töû keá trong maûng Böôùc 4: Neáu i >Vò trí cuoái: //Heát maûng Khoâng tìm thaáy. Döøng. Ngöôïc laïi: Laëp laïi Böôùc 2. Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 8
- Tìm kieám tuaàn töï Ví duï: Cho daõy soá a 12 2 8 5 1 6 4 15 Giaù trò caàn tìm: 8 i=1 Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 9
- Tìm kieám tuaàn töï i=2 i=3 Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 10
- Tìm kieám tuaàn töï int LinearSearch(int a[], int N, int x) { for (int i=0; (i
- Tìm kieám tuaàn töï Caûi tieán caøi ñaët: duøng phöông phaùp “lính canh” Ñaët theâm moät phaàn töû coù giaù trò x vaøo cuoái maûng Baûo ñaûm luoân tìm thaáy x trong maûng Sau ñoù döïa vaøo vò trí tìm thaáy ñeå keát luaän. Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 12
- Tìm kieám tuaàn töï int LinearSearch(int a[], int N, int x) { // maûng goàm N phaàn töû töø a[0]..a[N-1] a[N] = x; // theâm lính canh vaøo cuoái daõy for (int i=0; (a[i]!=x); i++); if (i
- Tìm kieám tuaàn töï Ñaùnh giaù giaûi thuaät: Vaäy giaûi thuaät tìm tuaàn töï coù ñoä phöùc taïp tính toaùn caáp n: T(n) =O(n) Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 14
- Tìm kieám tuaàn töï Nhaän xeùt: Giaûi thuaät tìm tuyeán tính khoâng phuï thuoäc vaøo thöù töï cuûa caùc phaàn töû trong danh saùch, do vaäy ñaây laø phöông phaùp toång quaùt nhaát ñeå tìm kieám treân moät danh saùch baát kyø. Moät thuaät toaùn coù theå ñöôïc caøi ñaët theo nhieàu caùch khaùc nhau, kyõ thuaät caøi ñaët aûnh höôûng ñeán toác ñoä thöïc hieän cuûa thuaät toaùn. Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 15
- Tìm kieám nhò phaân
- Tìm kieám nhò phaân Ñoái vôùi nhöõng daõy ñaõ coù thöù töï (giaû söû thöù töï taêng ), caùc phaàn töû trong daõy coù quan heä ai -1 ≤ ai ≤ ai+1 Neáu x > ai thì x chæ coù theå xuaát hieän trong ñoaïn [ai+1 ,aN] cuûa daõy Neáu x < ai thì x chæ coù theå xuaát hieän trong ñoaïn [a1 ,ai-1] cuûa daõy . Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 17
- Tìm kieám nhò phaân YÙ töôûng cuûa giaûi thuaät laø taïi moãi böôùc tieán haønh so saùnh x vôùi phaàn töû naèm ôû vò trí giöõa cuûa daõy tìm kieám hieän haønh, döïa vaøo keát quaû so saùnh naøy ñeå quyeát ñònh giôùi haïn daõy tìm kieám ôû böôùc keá tieáp laø nöûa treân hay nöûa döôùi cuûa daõy tìm kieám hieän haønh Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 18
- Tìm kieám nhò phaân Böôùc 1: left = VTÑ; right = VTC; Böôùc 2: Trong khi left ≤ right laëp: //ñoaïn tìm kieám chöa roãng Böôùc 21: mid = (left+right)/2; // laáy moác so saùnh Böôùc 22: Neáu a[mid] = x: //Tìm thaáy. Döøng, vò trí xuaát hieän: mid Böôùc 23: Neáu a[mid] > x: //tìm x trong daõy con aleft .. amid -1 right = mid - 1; Ngöôïc laïi //tìm x trong daõy con amid +1 .. aright left = mid + 1; //Heát laëp Böôùc Caáu truùc 3: -Döøng, Döõ lieäu khoâng Tìm kieám vaø Saép xeáptìm thaáy. 19
- Tìm kieám nhò phaân Ví duï: Cho daõy soá a goàm 8 phaàn töû: 1 2 4 5 6 8 12 15 Giaù trò caàn tìm laø 8 Caáu truùc Döõ lieäu - Tìm kieám vaø Saép xeáp 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
kỹ thuật lập trình: Tìm kiếm trên mảng
5 p | 180 | 31
-
Bài giảng Cấu trúc dữ liệu: Chương 2 - Các giải thuật tìm kiếm và sắp thứ tự
186 p | 185 | 22
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
186 p | 84 | 21
-
Bài giảng Cấu trúc dữ liệu - Bài 2: Tìm kiếm và sắp xếp
64 p | 110 | 18
-
Bài tập Cấu trúc dữ liệu và giải thuật
16 p | 231 | 18
-
Bài giảng Cấu trúc dữ liệu và thuật toán - Chương 2: Tìm kiếm và sắp xếp
79 p | 101 | 17
-
Bài giảng Cấu trúc dữ liệu - ThS. Nguyễn Thị thúy Loan
54 p | 125 | 15
-
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 2 - ThS. Phạn Nguyệt Thuần
143 p | 93 | 9
-
Cấu trúc dữ liệu và giải thuật - Chương 2.2: Giải thuật sắp xếp
110 p | 82 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các thuật toán tìm kiếm và sắp xếp cơ bản - Lê Thị Ngọc Hạnh
28 p | 134 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 2
187 p | 47 | 5
-
Chương 3 Các phương pháp tìm kiếm và sắp xếp
3 p | 91 | 5
-
Bài giảng Thuật toán ứng dụng: Tìm kiếm và Sắp xếp - Trương Xuân Nam
27 p | 63 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Trường ĐH Công nghệ Thông tin
191 p | 27 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 2: Tìm kiếm và sắp xếp nội
18 p | 78 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Đỗ Ngọc Như Loan
90 p | 50 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Tìm kiếm và sắp xếp - Đậu Ngọc Hà Dương
56 p | 14 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn