Các dạng thuật toán tìm kiếm

1,Tìm kiếm tuyến tính

_Là kiểm tra tuần tự từng phần tử của mảng, đến khi nào giống thì thôi.
_Giải thuật tìm kiếm tuyến tính

+,Bước 1: Thiết lập i thành 1
+, Bước 2: Nếu i > n thì chuyển tới bước 7
+, Bước 3: Nếu A[i] = x thì chuyển tới bước 6
+, Bước 4: Thiết lập i thành i + 1
+, Bước 5: Tới bước 2
+, Bước 6: In phần tử x được ?m thấy tại chỉ mục i và tới bước 8
+, Bước 7: In phần tử không được ?m thấy
+, Bước 8: Thoát

2,Tìm kiếm nhị phân

_Điều kiện của thuật toán này là mảng đã được sắp xếp tăng dần. So sánh x với giá trị của phần tử nằm ở giữa mảng (mid=(left+right)/2). Nếu x nhỏ hơn a[mid] thì nó chỉ có thể nằm ở nửa bên trái, ngược lại x lớn hơn a[mid] thì x nằm ở nửa bên phải. Xác định x nằm ở nửa nào thì ta lặp lại thuật toán với nửa đó. Như vậy số lần kiểm tra giảm đi nhiều do ko phải mất công kiểm tra những phần tử thuộc nửa còn lại.

3,Tìm kiếm nội suy

_

Là cải tiến của thuật toán tìm kiếm nhị phân. Thay vì chia đôi, thuật toán này chia theo phép tính 

\mathrm{mid} = \mathrm{left} + \dfrac{\mathrm{right}-\mathrm{left}} {a[\mathrm{right}]-a[\mathrm{left}]} (x-a[\mathrm{left}])

 giúp thu gọn khoảng tìm kiếm hơn. Chỉ cần thay biểu thức tính mid này vào code mẫu của thuật toán tìm kiếm nhị phân là được.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook