当前位置: 首页 > news >正文

线性搜索算法

何时使用线性搜索算法

  • 当处理一个小数据集时。
  • 当搜索存储在连续内存中的数据集时。

线性搜索算法在什么情况下优于其他搜索算法?

当列表或数组未排序时,或者当输入的大小相对较小时,首选线性搜索算法。它易于实现,并且不需要数据按任何特定顺序排列。

以下是线性搜索算法的实现:

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

相关文章:

  • 《几何原本》命题I.31
  • JVM常用概念之代际障碍
  • Selenium的免登录和滚动条到底部的学习总结(3)
  • 焕新|16GB+1TB 、UV 双段,AORO M8 防爆手机安全性能双升级
  • 使用pnpm管理前端项目依赖
  • 数字IC后端项目典型问题(2025.03.10数字后端项目问题记录)
  • SQL Server 列存储索引:大幅提升查询性能的利器
  • TDengine 配置 ODBC 数据源
  • c#如何直接获取json中的某个值
  • Bad owner or permissions on ssh/config - 解决方案
  • 表、索引统计信息锁定和解锁
  • 第十课:爬虫综合实战:从数据采集到可视化分析
  • K8s 1.27.1 实战系列(十二)Ingress
  • Redis----大key、热key解决方案、脑裂问题
  • 【教学类-43-25】20240311 数独3宫格的所有可能(图片版 12套样式,空1格-空8格,每套510张,共6120小图)
  • DTL698电表数据 转 EthernetIP协议项目案例
  • 大模型安全新范式:DeepSeek一体机内容安全卫士发布
  • 【数据结构】1数据结构基本概念 【作业1数据结构综述】
  • C++【类和对象】(超详细!!!)
  • 【外部链接跳转uniapp开发的App内指定页面】实现方案
  • 海外市场,押注中国无人驾驶龙头
  • 竞彩湃|足总杯决赛或有冷门,德甲欧冠资格之争谁笑到最后
  • 专访|《内沙》导演杨弋枢:挽留终将失去的美好
  • 张国清将赴俄罗斯举行中俄“长江—伏尔加河”地方合作理事会第五次会议和“东北—远东”政府间合作委员会双方主席会晤
  • 新片|《碟中谍8:最终清算》定档5月30日
  • 新华时评:让医德医风建设为健康中国护航