CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 4: Kỹ Thuật Tìm kiếm (SEARCHING)

15 3 0
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 4: Kỹ Thuật Tìm kiếm (SEARCHING)

Đ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

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 4: Kỹ Thuật Tìm kiếm (SEARCHING) Khái niệm tìm kiếm     Tìm kiếm yêu cầu thường xuyên đời sống hàng ngày tin học Để đơn giản ta xét tốn tìm kiếm sau: Cho dãy số gồm phần tử a1, a2, , an Cho biết dãy có phần tử có giá trị X (cho trước) hay không? Đo độ hiệu quả:  Số lần so sánh khóa cần tìm khóa ghi Phân loại:  Tìm kiếm nội (internal searching)  Tìm kiếm ngoại (external searching) Bản ghi khóa   Bản ghi:  Khóa  Dữ liệu Khóa:  So sánh  Thường số Hàm tìm kiếm    Tham số vào:  Danh sách cần tìm  Khóa cần tìm Tham số ra:  Vị trí phần tử tìm thấy (nếu có) Kết hàm: kiểu int  Tìm thấy: vị trí  Khơng tìm thấy: -1 Tìm (sequential search) Ý tưởng: So sánh phần tử mảng A với giá trị X cần tìm phần tử tìm thấy tìm hết mảng mà khơng tìm thấy X Tìm (sequential search) position = Target key 7 13 21 15 return Số lần so sánh: Tìm - khơng tìm thấy Target key 7 13 21 15 return -1 Số lần so sánh: Tìm - Thuật toán B1: i = ;// phần tử B2: so sánh A[i] với X, có khả : A[i] =X : Tìm thấy Dừng A[i] X : Sang B3 B3: i=i+1 // Xét phần tử 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 B2 Tìm - mã C++ int LinearSearch (int A[], int n, int X) { int i = 0; while (A[i] != X && i

Ngày đăng: 18/04/2022, 17:10

Mục lục

  • CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

  • Khái niệm tìm kiếm

  • Bản ghi và khóa

  • Hàm tìm kiếm

  • Tìm tuần tự (sequential search)

  • Slide 6

  • Tìm tuần tự - không tìm thấy

  • Tìm tuần tự - Thuật toán

  • Tìm tuần tự - mã C++

  • Tìm tuần tự - Đánh giá

  • Tìm trên danh sách có thứ tự

  • Tìm nhị phân (binary search)

  • Tìm nhị phân

  • Tìm nhị phân – Giải thuật

  • Tìm nhị phân – Mã C++

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

  • Đang cập nhật ...

Tài liệu liên quan