Thuật Toán Tìm Kiếm Tuần Tự

     

Thuật toán tìm kiếm đường tính (linear search) hay còn gọi là thuật toán tìm kiếm tuần tự (Sequential search) là một phương pháp tìm kiếm 1 phần tử mang lại trước vào một danh sách bằng giải pháp duyệt theo lần lượt từng thành phần của list đó cho tới lúc tìm kiếm thấy giá bán trị mong ước hay đã coi ngó qua toàn bộ danh sách.

Bạn đang xem: Thuật toán tìm kiếm tuần tự

Tìm kiếm đường tính là một lời giải rất dễ dàng và đơn giản khi hiện nay thực. Lời giải này tỏ ra khá tác dụng khi đề nghị tìm kiếm trên một list đủ nhỏ hoặc một list chưa sắp đến thứ tự đối kháng giản. Trong trường hợp đề nghị tìm kiếm những lần, dữ liệu thường được giải pháp xử lý một lần trước khi tìm kiếm: có thể được sắp xếp theo thứ tự, hoặc được xuất bản theo một cấu tạo dữ liệu đặc thù cho giải thuật công dụng hơn,…

Phân loạigiải thuật tìm kiếm
Cấu trúc dữ liệudanh sách
Độ tinh vi thời gianO(n) khi bộ phận tìm tìm nằm cuối danh sách hoặc không có trong danh sách
Thời gian chạy giỏi nhấtO(1) khi bộ phận cần tìm nằm ở đầu danh sách
Độ phức hợp không gianO(n)

Bài toán: Cho một mảng mảng <> bao gồm n phần tử, hãy viết hàm nhằm tìm kiếm 1 phần tử x đã đến trong mảng <>.

*

Ví dụ:

Đầu vào: mảng A<> = 10, 20, 80, 30, 60, 50, 110, 100, 130, 170 x = 110;Đầu ra: 6Phần tử x có mặt ở vị trí số 6Đầu vào: mảng A<> = 10, 20, 80, 30, 60, 50, 110, 100, 130, 170 x = 175;Đầu ra: -1Phần tử x không có trong mảng A<>.

Mã giả

Phiên phiên bản lặp trường đoản cú nhiên

Đây là phiên bản hay chạm chán nhất của giải thuật này, công dụng trả về vẫn là vị trí của thành phần cần tra cứu hoặc một quý giá Δ mô tả việc không tìm kiếm thấy thành phần trong danh sách đó.

1. For each cống phẩm in the list: 1. If that tác phẩm has the desired value, 1. Stop the search and return the item"s location. 2. Return "Δ"Nếu danh sách được lưu trữ dưới dạng mảng, địa điểm của thành phần cần tìm có thể là chỉ số của chính nó trong mảng, còn quý hiếm Δ có thể là chỉ số nằm trước phần tử đầu tien (0 hoặc -1 tùy theo danh sách).

Xem thêm: Tả Phiên Chợ Theo Trí Tưởng Tượng Của Em, Tả Quang Cảnh Phiên Chợ Theo Tưởng Tượng Của Em

Nếu danh sách là một danh sách liên kết, địa điểm của thành phần được trả về có thể nằm dưới dạng địa chỉ của no, còn quý giá Δ rất có thể là giá chỉ trị null.

Phiên phiên bản đệ quy

Đây là phiên bản đệ quy khi hiện thực giải thuật tìm tìm tuần tự.

1. If the menu is empty, return Λ; 2. Else 1. If the first nhà cửa of the danh sách has the desired value 1. Return its location; 2. Else 1. Search the value in the remainder of the list, and return the result.

Xem thêm: Soạn Hình Học 11 Bài 2 Đường Thẳng Chéo Nhau Trong Không Gian

Sử dụng bộ phận cầm canh

Một cách thức được thực hiện để cải thiện hiệu trái của lời giải là chèn thành phần muốn tìm kiếm kiếm với cuối list như một phần tử thay canh (sentinel) như được trình diễn dưới đây:


1. Phối A to lớn x. 2. Phối i khổng lồ 1. 3. Repeat this loop: 1. If A = x, 1. Exit the loop. 2. Phối i to i + 1. 4. Return i.Việc thêm phần tử cầm canh giúp giảm bớt việc so sánh chỉ số hiện nay tại i với số những phần tử n ở mỗi vòng lặp. Mặc dù nhiên, điều này chỉ rất có thể được áp dụng khi vị trí cuối cùng của danh sách tồn trên nhưng không được sử dụng.

Viết thuật toán search kiếm tuyến đường tính với ngôn từ lập trình C, C++, Java, Python3

Tìm kiếm con đường tính cùng với C++:

#include using namespace std; int search(int arr<>, int n, int x) { int i; for (i = 0; i tìm kiếm tuyến tính với C:

#include int search(int arr<>, int n, int x) { int i; for (i = 0; i tra cứu kiếm tuyến đường tính cùng với Python3:

def search(arr, n, x): for i in range (0, n): if (arr == x): return i; return -1; # Driver Code arr = < 2, 3, 4, 10, 40 >; x = 10; n = len(arr); result = search(arr, n, x) if(result == -1): print("Element is not present in array") else: print("Element is present at index", result);Tìm kiếm tuyến đường tính với Java:

class GFG { public static int search(int arr<>, int x) { int n = arr.length; for(int i = 0; i search kiếm con đường tính cùng với PHP:

Tìm kiếm tuyến đường tính cùng với C#:

using System; class GFG { public static int search(int<> arr, int x) { int n = arr.Length; for(int i = 0; i kiểm tra và xem kết quả:

Element is present at index 3


Tagged học Thuật Toán như thế nào? linear tìm kiếm Sequential search Thuật toán Thuật toán tìm tìm kiếm kiếm tuần tự tìm kiếm kiếm con đường tính

Post navigation