Cấu trúc dữ liệu di động chuong 2c

32 8 0
  • Loading ...
Loading...
1/32 trang

Thông tin tài liệu

Ngày đăng: 08/09/2017, 16:38

ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT CHƯƠNG II TÌM KIẾM VÀ SẮP XẾP Nguyễn Trọng Chỉnh chinhnt@uit.edu.vn TÌM KIẾM VÀ SẮP XẾP NHU CẦU TÌM KIẾM VÀ SẮP XẾP GIẢI THUẬT TÌM KIẾM GIẢI THUẬT SẮP XẾP TÌM KIẾM VÀ SẮP XẾP NHU CẦU TÌM KIẾM VÀ SẮP XẾP - Tìm kiếm để tra cứu thông tin Ví dụ: tra từ điển, xem thông tin hàng hóa, tìm kiếm tài liệu, - Tìm kiếm để giải vấn đề Ví dụ: suy diễn tự động - Việc tìm kiếm có hiệu tập hợp có thứ tự GIẢI THUẬT TÌM KIẾM KHÁI NIỆM TÌM KIẾM TUYẾN TÍNH TÌM KIẾM NHỊ PHÂN PHẦN TỬ CẦM CANH GIẢI THUẬT TÌM KIẾM KHÁI NIỆM Tìm kiếm thao tác duyệt toàn tập hợp để xác định phần tử tập hợp thỏa tính chất b Ví dụ: a 1 b b GIẢI THUẬT TÌM KIẾM KHÁI NIỆM Khóa trường cấu trúc sử dụng để tính toán trình tìm kiếm xếp Ví dụ 1: giả sử có cấu trúc struct MayTinh { int maso; char tenmay[20]; int dongia; }; Trường dongia gọi khóa dùng để tính toán tìm kiếm xếp GIẢI THUẬT TÌM KIẾM TÌM KIẾM TUYẾN TÍNH (Linear Search) Tìm kiếm tuyến tính tìm kiếm giá trị khóa x tập hợp chưa có thứ tự cách duyệt phần tử tập hợp để xác định phần tử có giá trị khóa x • Ví dụ 2: tìm phần tử có giá trị tập hợp {1, 2, 9, 4, 3, 5, 7} GIẢI THUẬT TÌM KIẾM TÌM KIẾM TUYẾN TÍNH • Giải thuật: Giả sử n phần tử tập hợp A đánh số thứ tự từ đến n-1, tìm phần tử có giá trị khóa x - Bước 1: i  - Bước 2: Nếu i < n qua bước 3, ngược lại qua bước - Bước 3: Nếu A[i] == x qua bước - Bước 4: i  i + qua bước - Bước 5: Nếu i < n tìm thấy, ngược lại không tìm thấy - Bước 6: Kết thúc GIẢI THUẬT TÌM KIẾM TÌM KIẾM TUYẾN TÍNH Lưu đồ: Bắt đầu i0 i x rm-1 lm+1 20 GIẢI THUẬT TÌM KIẾM TÌM KIẾM NHỊ PHÂN l=0 m=3 r=6 x=3 l=0 m=1 r=2 l=2 m=2 r=2 5 x=3 4 A[m] = = x x=3 21 GIẢI THUẬT TÌM KIẾM TÌM KIẾM NHỊ PHÂN • Cài đặt int BinarySearch(int *A, int n, int x) { int l = 0, r = n-1, m; { m = (l + r) / 2; if (x == A[m]) return m; // Tìm thấy else if (x < A[m]) r = m - 1; else l = m + 1; }while (l
- Xem thêm -

Xem thêm: Cấu trúc dữ liệu di động chuong 2c , Cấu trúc dữ liệu di động chuong 2c , Cấu trúc dữ liệu di động chuong 2c

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay
Nạp tiền Tải lên
Đăng ký
Đăng nhập