PowerPoint Presentation CHƯƠNG 2 CÁC THUẬT GIẢI SẮP XẾP VÀ TÌM KIẾM 2 2 Một số phương pháp 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ụ [.]
CHƯƠNG 2: CÁC THUẬT GIẢI SẮP XẾP VÀ TÌM KIẾM 2.2 Một số phương pháp 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 Ví dụ: Tìm kiếm sinh viên lớp Tìm kiếm tập tin, thư mục máy Để đơ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? Chương 2: Tì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 tìm kiếm (Sequential Search) Tìm kiếm nhị phân (Binary Search) 2.2.1 Tìm kiếm Ý tưởng: Bắt đầu từ phần tử danh sách, so sánh phần tử danh sách với giá trị X cần tìm Nếu có phần tử X, thuật tốn dừng lại (thành công) Nếu đến cuối danh sách mà khơng có phần tử X, thuật tốn dừng lại (khơng thành cơng) Thuật tố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 Vị trí = Khóa tìm 7 13 21 15 Tìm thành cơng Số lần so sánh: Khóa tìm 7 13 21 15 Khơng tìm thấy Số lần so sánh: 8 void LSearch (int list[], int n, int key) { int flag = 0; // giả sử lúc đầu chưa tìm thấy for(int i=0; i