Trong hướng dẫn này, bạn sẽ tìm hiểu về tìm kiếm tuyến tính. Ngoài ra, bạn sẽ tìm thấy các ví dụ làm việc của tìm kiếm tuyến tính C, C ++, Java và Python.
Tìm kiếm tuyến tính là một thuật toán tìm kiếm tuần tự nơi chúng tôi bắt đầu từ một đầu và kiểm tra mọi yếu tố của danh sách cho đến khi tìm thấy phần tử mong muốn. Nó là thuật toán tìm kiếm đơn giản nhất.
Tìm kiếm tuyến tính hoạt động như thế nào?
Các bước sau đây được theo dõi để tìm kiếm một phần tử k = 1
trong danh sách bên dưới.
- Bắt đầu từ phần tử đầu tiên, so sánh k với mỗi phần tử x. So sánh với từng phần tửCompare with each element
- Nếu
x == k
, trả lại chỉ mục. Yếu tố tìm thấyElement found - Khác, không tìm thấy trở lại.
Thuật toán tìm kiếm tuyến tính
LinearSearch[array, key] for each item in the array if item == value return its index
Ví dụ về Python, Java và C/C ++
# Linear Search in Python
def linearSearch[array, n, x]:
# Going through array sequencially
for i in range[0, n]:
if [array[i] == x]:
return i
return -1
array = [2, 4, 0, 1, 9]
x = 1
n = len[array]
result = linearSearch[array, n, x]
if[result == -1]:
print["Element not found"]
else:
print["Element found at index: ", result]
// Linear Search in Java
class LinearSearch {
public static int linearSearch[int array[], int x] {
int n = array.length;
// Going through array sequencially
for [int i = 0; i < n; i++] {
if [array[i] == x]
return i;
}
return -1;
}
public static void main[String args[]] {
int array[] = { 2, 4, 0, 1, 9 };
int x = 1;
int result = linearSearch[array, x];
if [result == -1]
System.out.print["Element not found"];
else
System.out.print["Element found at index: " + result];
}
}
// Linear Search in C
#include
int search[int array[], int n, int x] {
// Going through array sequencially
for [int i = 0; i < n; i++]
if [array[i] == x]
return i;
return -1;
}
int main[] {
int array[] = {2, 4, 0, 1, 9};
int x = 1;
int n = sizeof[array] / sizeof[array[0]];
int result = search[array, n, x];
[result == -1] ? printf["Element not found"] : printf["Element found at index: %d", result];
}
// Linear Search in C++
#include
using namespace std;
int search[int array[], int n, int x] {
// Going through array sequencially
for [int i = 0; i < n; i++]
if [array[i] == x]
return i;
return -1;
}
int main[] {
int array[] = {2, 4, 0, 1, 9};
int x = 1;
int n = sizeof[array] / sizeof[array[0]];
int result = search[array, n, x];
[result == -1] ? cout