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

bài giảng cấu trúc dữ liệu và thuật toán chương 4 tìm kiếm

33 372 0

Đ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 33
Dung lượng 246,25 KB

Nội dung

Chương 4: TÌM KIẾM (SEARCHING) Chương 3: Tìm kiếm Nội dung 1. Khái quát về tìm kiếm 2. Tìm tuyến tính (Linear Search) 3. Tìm nhị phân (Binary Search) 2 Chương 3: Tìm kiếm Khái quát về tìm kiếm  Tìm kiếm là một yêu cầu rất thường xuyên trong đời sống hàng ngày cũng như trong tin học  Ví dụ:  Tìm kiếm một sinh viên trong lớp  Tìm kiếm một tập tin, thư mục trong máy  Để đơn giản ta xét bài toán tìm kiếm như sau:  Cho một dãy số gồm các phần tử a 1 , a 2 , , a n . Cho biết trong dãy này có phần tử nào có giá trị bằng X (cho trước) hay không? 3 Chương 3: Tìm kiếm Chương 3: Tìm kiếm Khái quát về tìm kiếm  Xét hai cách tìm kiếm:  Tìm kiếm tuyến tính (Linear Search) hay còn gọi là tìm kiếm tuần tự (Sequential Search)  Tìm kiếm nhị phân (Binary Search) 4 Chương 3: Tìm kiếm Nội dung 1. Khái quát về tìm kiếm 2. Tìm tuyến tính (Linear Search) 3. Tìm nhị phân (Binary Search) 5 Chương 3: Tìm kiếm 2. Tìm tuyến tính (Linear Seach) Ý tưởng:  Bắt đầu từ phần tử đầu tiên của danh sách, so sánh lần lượt từng phần tử của danh sách với giá trị X cần tìm  Nếu có phần tử bằng X, thuật toán dừng lại (thành công)  Nếu đến cuối danh sách mà không có phần tử nào bằng X, thuật toán dừng lại (không thành công)  If we find a match, the search terminates successfully by returning the index of the element  If the end of the list is encountered without a match, the search terminates unsuccessfully 6 Chương 3: Tìm kiếm 2. Tìm tuyến tính (Linear Seach) Thuật toán: B1: i = 0 ; // bắt đầu từ phần tử đầu tiên B2: so sánh A[i] với X, có 2 khả năng :  A[i] = X : Tìm thấy. Dừng  A[i] ≠ X : Sang B3 B3: i=i+1 // Xét phần tử tiếp theo trong 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 7 Chương 3: Tìm kiếm 2. Tìm tuyến tính (Linear Seach) 8 12 2 8 5 1 12 2 8 5 1 X=8 12 2 8 5 1 X=8 12 2 8 5 1 X=8 X=8Ví dụ: i=0 i=1 i=2 Dừng Chương 3: Tìm kiếm 2. Tìm tuyến tính (Linear Seach) 9 5 Khóa tìm 7 13 5 21 6 2 8 15 0 1 2 3 4 5 6 7 Vị trí = 2 Tìm thành công Số lần so sánh: 3 Chương 3: Tìm kiếm 10 9 7 13 5 21 6 2 8 15 0 1 2 3 4 5 6 7 Không tìm thấy Số lần so sánh: 8 Khóa tìm 2. Tìm tuyến tính (Linear Seach) [...]... dụ 32 1 2 3 4 5 6 7 8 12 2 8 5 1 6 4 15 Insertion Sort – Ví dụ 33 Chèn a[1] vào (a[0], a[1]) 1 pos 2 3 4 5 6 7 8 12 2 2 8 5 1 6 4 15 i x Insertion Sort – Ví dụ 34 Chèn a[2] vào (a[0] … a[2]) 1 2 pos 3 2 12 8 8 4 x 6 7 8 5 i 5 1 6 4 15 Insertion Sort – Ví dụ 35 Chèn a[3] vào (a[0] … a[3]) 1 2 3 pos 4 2 8 5 12 5 i x 5 6 7 8 1 6 4 15 Insertion Sort – Ví dụ 36 Chèn a [4] vào (a[0] … a [4] ) 1 2 3 4 pos 5 1... a[j-1] Bubble Sort – Ví dụ 19 1 2 3 4 5 6 7 j 8 1 12 2 2 8 5 4 6 15 i Nếu a[j] . Chương 4: TÌM KIẾM (SEARCHING) Chương 3: Tìm kiếm Nội dung 1. Khái quát về tìm kiếm 2. Tìm tuyến tính (Linear Search) 3. Tìm nhị phân (Binary Search) 2 Chương 3: Tìm kiếm Khái quát về tìm kiếm  Tìm. 3: Tìm kiếm Khái quát về tìm kiếm  Xét hai cách tìm kiếm:  Tìm kiếm tuyến tính (Linear Search) hay còn gọi là tìm kiếm tuần tự (Sequential Search)  Tìm kiếm nhị phân (Binary Search) 4 Chương. giá trị x là như nhau. Chương 3: Tìm kiếm Nội dung 1. Khái quát về tìm kiếm 2. Tìm tuyến tính (Linear Search) 3. Tìm nhị phân (Binary Search) 15 Chương 3: Tìm kiếm 3. Tìm nhị phân (Binary Seach)  Điều

Ngày đăng: 19/10/2014, 12:10

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN