线性搜索算法
目录
线性搜索算法
何时使用线性搜索算法 ?
- 当处理一个小数据集时。
- 当搜索存储在连续内存中的数据集时。
线性搜索算法在什么情况下优于其他搜索算法?
当列表或数组未排序时,或者当输入的大小相对较小时,首选线性搜索算法。它易于实现,并且不需要数据按任何特定顺序排列。
以下是线性搜索算法的实现:
C++
#include <iostream>
#include <vector>
using namespace std;
int search(vector<int>& arr, int x) {
for (int i = 0; i < arr.size(); i++)
{
if (arr[i] == x)
{
return i;
}
}
return -1;
}
int main() {
vector<int> arr = {3, 5, 7, 12 ,22, 56, 66};
int x = 56;
int res = search(arr, x);
if (res == -1)
{
cout << "数组中不存在元素";
}
else
{
cout << "数字存在索引是 " << res;
}
return 0;
}
输出
数字存在索引是 5
C
#include <stdio.h>
int search(int arr[], int N, int x)
{
for (int i = 0; i < N; i++)
if (arr[i] == x)
return i;
return -1;
}
int main(void)
{
int arr[] = arr = {3, 5, 7, 12 ,22, 56, 66};
int x = 56;
int N = sizeof(arr) / sizeof(arr[0]);
int result = search(arr, N, x);
(result == -1)
? printf("数组中不存在元素")
: printf("数字存在索引是 %d", result);
return 0;
}
输出
数字存在索引是 5
Java
import java.io.*;
class GFG {
public static int search(int arr[], int N, int x)
{
for (int i = 0; i < N; i++) {
if (arr[i] == x)
return i;
}
return -1;
}
public static void main(String args[])
{
int arr = {3, 5, 7, 12 ,22, 56, 66};
int x = 56;
int result = search(arr, arr.length, x);
if (result == -1)
System.out.print(
"数组中不存在元素");
else
System.out.print("数字存在索引是 "
+ result);
}
}
输出
数字存在索引是 5
python
def search(arr, N, x):
for i in range(0, N):
if (arr[i] == x):
return i
return -1
if __name__ == "__main__":
arr = {3, 5, 7, 12 ,22, 56, 66}
x = 56
N = len(arr)
result = search(arr, N, x)
if(result == -1):
print("数组中不存在元素")
else:
print("数字存在索引是", result)
输出
数字存在索引是 5
C#
using System;
class GFG {
public static int search(int[] arr, int N, int x)
{
for (int i = 0; i < N; i++) {
if (arr[i] == x)
return i;
}
return -1;
}
public static void Main()
{
int[] arr = {3, 5, 7, 12 ,22, 56, 66};
int x = 56;
int result = search(arr, arr.Length, x);
if (result == -1)
Console.WriteLine(
"数组中不存在元素");
else
Console.WriteLine("数字存在索引是 "
+ result);
}
}
输出
数字存在索引是 5
JavaScript
function search(arr, n, x)
{
for (let i = 0; i < n; i++)
if (arr[i] == x)
return i;
return -1;
}
let arr = {3, 5, 7, 12 ,22, 56, 66};
let x = 56;
let n = arr.length;
let result = search(arr, n, x);
(result == -1)
? console.log("数组中不存在元素")
: console.log("数字存在索引是 " + result);
输出
数字存在索引是 5
PHP
<?php
function search($arr, $n, $x)
{
for($i = 0; $i < $n; $i++) {
if($arr[$i] == $x)
return $i;
}
return -1;
}
$arr = array(3, 5, 7, 12 ,22, 56, 66);
$x = 56;
$result = search($arr, sizeof($arr), $x);
if($result == -1)
echo "数组中不存在元素";
else
echo "数字存在索引是 " ,
$result;
?>
输出
数字存在索引是 5