1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Trường ĐH Văn Lang

26 10 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 1 MB

Nội dung

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 Giải thuật tìm kiếm, cung cấp cho người học những kiến thức như: Giới thiệu bài toán tìm kiếm; Tìm kiếm tuyến tính; Tìm kiếm nhị phân. Mời các bạn cùng tham khảo!

KHOA CÔNG NGHỆ THÔNG TIN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT BÀI 2: GIẢI THUẬT TÌM KIẾM GVGD: THS TRẦN CÔNG THANH HỌC KỲ I – NĂM HỌC 2020-2021 KHĨA NỘI DUNG 01 Giới thiệu tốn tìm kiếm 02.Tìm kiếm tuyến tính 03 Tìm kiếm nhị phân 04 Bài tập 05 06 Giới thiệu tốn tìm kiếm ❖ Tìm kiếm q trình xác định đối tượng tập đối tượng Kết trả về: • Đối tượng tìm (nếu có) • Chỉ số (nếu có) xác định vị trí đối tượng tập ❖ Việc tìm kiếm dựa theo trường đối tượng, trường khóa (key) việc tìm kiếm Ví dụ: Tìm sinh viên có họ tên X DSSV SV {MaSV, HoTen, DiaChi,…} Khoá? Kết trả về? 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CÔNG NGHỆ THÔNG TIN Giới thiệu tốn tìm kiếm Bài tốn mơ tả sau: • Tập liệu lưu trữ dãy a1, a2, ,an Giả sử chọn cấu trúc liệu mảng để lưu trữ dãy số nhớ chính, có khai báo: int a[n]; • Khóa cần tìm x: int x; 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com Tìm kiếm Tìm kiếm tuyến tính Tập liệu KHOA CƠNG NGHỆ THƠNG TIN Tìm kiếm nhị phân Tập liệu xếp Giới thiệu toán tìm kiếm • Ý tưởng: duyệt từ phần tử đầu tiên, so sánh khóa tìm kiếm với khoá tương ứng phần tử danh sách Cho đến gặp phần tử cần tìm đến duyệt hết danh sách • Các bước tiến hành sau: i=0 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com S i< n Không tìm thấy Đ Đ a[i] =x Tìm thấy S i=i +1 KHOA CƠNG NGHỆ THƠNG TIN Tìm kiếm tuyến tính (Linear Search) Ý tưởng: Lần lượt so sánh x với phần tử thứ nhất, thứ hai, mảng a gặp phần tử cần tìm, hết mảng 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com KHOA CƠNG NGHỆ THƠNG TIN Tìm kiếm tuyến tính • Ví dụ: Cho dãy số a, giá trị tìm X = 8: 12 X=8 Tìm thấy 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! 12 i=0 i=1 ibaotu.com i=2 i=3 i=4 i=5 i=6 X=7 Khơng tìm thấy 12 i=0 i=1 i=2 i=3 i=4 i=5 i=6 KHOA CÔNG NGHỆ THÔNG TIN Tìm kiếm tuyến tính Giải thuật Bước 1: i = 0; // phần tử dãy Bước 2: So sánh a[i] với x, có khả : •a[i] = x : Tìm thấy Dừng 感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿! ibaotu.com •a[i] != x : Sang Bước Bước 3: • i = i+1; // xét tiếp phần tử kế mảng • Nếu i >N: Hết mảng, khơng tìm thấy Dừng Ngược lại: Lặp lại Bước KHOA CƠNG NGHỆ THƠNG TIN Tìm kiếm tuyến tính Thuật tốn tìm kiếm tuyến tính /* Trả về: vị trí xuất x mảng a Trả về: -1 x khơng có mảng a */ int Search(int a[], int n, int key) { int i =0; while (i x: //tìm tiếp x dãy aleft amid -1 right =mid - 1; • a[mid] < x: //tìm tiếp x dãy amid +1 aright left = mid + 1; Bước 3: Nếu left

Ngày đăng: 27/01/2023, 08:43

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN