Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Trần Minh Thái (Trường Đại học Hồng Bàng )
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Trần Minh Thái (Trường Đại học Hồng Bàng ) Chương 2.1. Giải thuật tìm kiếmTrầnMinhTháiEmail:minhthai@huflit.edu.vnWebsite:www.minhthai.edu.vn 1Mục tiêu• Xác định được vai trò của tìm kiếm và sắp xếp trong hệ thống thông tin• Nắm vững và minh họa được giải thuật tìm tuần tự và tìm kiếm nhị phân trên mảng một chiều• Cài đặt được giải thuật tìm kiếm bằng ngôn ngữ C/C++ 2Nhu cầu tìm kiếm và sắp xếp• Tìm kiếm: Có trong hầu hết trong các hệ thống thông tin• Muốn tìm kiếm nhanh và hiệu quả dữ liệu có thứ tự sắp xếp 3Vấn đề tìm kiếm• Dựa vào một phần thông tin được gọi là khoá (key) tìm một mẫu tin (record) chứa các thông tin khác liên quan với khoá này• Có thể có nhiều mẫu tin hoặc không có mẫu tin nào chứa khoá cần tìm 4Đánh giá giải thuật tìm kiếm• Tìm kiếm thường là tác vụ tốn nhiều thời gian trong một chương trình Tổ chức cấu trúc dữ liệu và giải thuật cho việc tìm kiếm ảnh hưởng lớn đến hiệu suất hoạt động của chương trình• Thông số đo chủ yếu là số lần so sánh khoá cần tìm với các mẫu tin khác 5Phân loại• Tìm kiếm nội và tìm kiếm ngoại• Dữ liệu lưu trên thiết bị lưu trữ ngoài như đĩa hay băng từ: tìm kiếm ngoại• Dữ liệu được lưu trữ trên bộ nhớ chính: tìm kiếm nội 6Các giải thuật tìm kiếm• Có 2 giải thuật thường được áp dụng: tìm tuần tự và tìm nhị phân• Đặc tả: a1 • Tập a2 dữ liệua3 được a4 lưu trữa5 là dãy số a1, … a2, ... ,aN. an- aN 1 • Khai báo: int a[N]; • Khóa cần tìm: int x; 7Tìm tuần tự (Linear Search)Ý tưởng Lần lượt so sánh x với phần tử thứ nhất, thứ hai, ... của mảng acho đến khi gặp được phần tử cần tìm, hoặc hết mảng 8Tìm tuần tự• Minh họa tìm x =10 10 Đã tìm Chưa hết thấy mảng tại 7 5 12 41 10 32 13 9 15 3 vị trí 5• 1 họa Minh 2 tìm 3x =254 5 6 7 8 9 10 25 Đã hết Chưa hết mảng mảng 7 5 12 41 10 32 13 9 15 3 1 2 3 4 5 6 7 8 9 10 9Giải thuậtBước 1: i=1;//bắtđầutừphầntửđầutiên củadãyBước 2: Sosánha[i]vớix,có2khảnăng:• a[i]=x:Tìmthấy.Dừng• a[i]!=x:SangBước3.Bước 3:• i=i+1;//xéttiếpphầntửkếtrongmảng• Nếui>N:Hếtmảng,khôngtìmthấy.Dừng Ngượclại:LặplạiBước2.10Nguyên tắc cài đặt hàm tìm kiếm• Nếu có xuất hiện phần tử có giá trị x thì trả về vị trí tìm được• Ngược lại thì trả về -1 11Cài đặtintLinearSearch(inta[],intN,intx){ inti=0; while((iVấn đềintLinearSearch(inta[],intN,intx){ Nếu có x thì không cần thiết inti=0; Có thể loại bỏ? while((iCải tiếnDùng lính canh giúp giảm bớt phép so sánh• Minh họa tìm x =10 10 7 5 12 41 10 32 13 9 15 3 10• 1 họa Minh 2 tìm3x = 25 4 5 6 7 8 9 10 11 25 7 5 12 41 10 32 13 9 15 3 25 25 1 2 3 4 5 6 7 8 9 10 11 14Cài đặtintLinearSearch2(inta[],intN,intx){ inti=0; a[N]=x;//thêmphầntửxsaumảng while(a[i]!=x) i++; if(i==N) return-1;//tìmhếtmảng else returni; //tìmthấyxtạivịtríi}Độ phức tạp tính toán cấp n: T(n)=O(n) ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu Giải thuật tìm kiếm Hệ thống thông tin Tìm kiếm nhị phân Tìm kiếm tuyến tínhGợi ý tài liệu liên quan:
-
Bài tập thực hành môn Phân tích thiết kế hệ thống thông tin
6 trang 323 0 0 -
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 318 0 0 -
Bài thuyết trình Hệ thống thông tin trong bệnh viện
44 trang 255 0 0 -
Bài giảng HỆ THỐNG THÔNG TIN KẾ TOÁN - Chương 2
31 trang 234 0 0 -
Phương pháp và và ứng dụng Phân tích thiết kế hệ thống thông tin: Phần 1 - TS. Nguyễn Hồng Phương
124 trang 219 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng quản lý kho hàng trên nền Web
61 trang 215 0 0 -
62 trang 209 2 0
-
Giáo trình Lập trình cơ bản với C++ - Phan 2
69 trang 199 0 0 -
Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 9: Thiết kế giao diện
21 trang 189 0 0 -
Giáo trình Phân tích thiết kế hệ thống thông tin (chương 2-bài 2)
14 trang 183 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 166 0 0 -
Bài thuyết trình Logistic: Thực tế hệ thống thông tin logistic của Công ty Vinamilk
15 trang 166 0 0 -
65 trang 164 0 0
-
Giải thuật và cấu trúc dữ liệu
305 trang 163 0 0 -
3 trang 162 3 0
-
Luận văn Thạc sĩ Kỹ thuật: Ứng dụng hỗ trợ tra cứu kiến thức toán trung học phổ thông
78 trang 157 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 156 0 0 -
Sử dụng MATLAB các hệ thống thông tin hiện nay trình bày thông qua
482 trang 156 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tiểu luận Phân tích thiết kế hệ thống thông tin quản lý tour du lịch trong nước
51 trang 144 0 0