线性搜索算法

何时使用线性搜索算法

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

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

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

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

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("数组中不存在元素");elseSystem.out.print("数字存在索引是 "+ result);}
}

输出

数字存在索引是 5

python

def search(arr, N, x):for i in range(0, N):if (arr[i] == x):return ireturn -1if __name__ == "__main__":arr = {3, 5, 7, 12 ,22, 56, 66}x = 56N = 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("数组中不存在元素");elseConsole.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

<?phpfunction 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 "数组中不存在元素";
elseecho "数字存在索引是 " ,$result;
?>

输出

数字存在索引是 5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

踩坑记录:yolov5环境版本要求比较严苛?

在安装yolov5环境时&#xff0c;numpy安装失败报错metadata-generation-failed 报错如下&#xff1a; Collecting numpy1.18.5 (from -r /*****/yolov5-5.0/requirements.txt (line 5))Using cached https://pypi.tuna.tsinghua.edu.cn/packages/01/1b/d3ddcabd5817be02df0e6…

Java设计模式系列:单例模式的7种实现与适用场景

一、单例模式核心价值与实现原则 1. 使用场景 全局配置类(如数据库连接池)日志记录器Spring默认Bean作用域硬件设备访问(如打印机)2. 设计三原则 私有构造器:禁止外部实例化静态实例持有:全局唯一访问点延迟加载(可选):避免资源浪费二、七种单例实现方式深度解析 1.…

OpenManus-通过源码方式本地运行OpenManus,含踩坑及处理方案,chrome.exe位置修改

前言&#xff1a;最近 Manus 火得一塌糊涂啊&#xff0c;OpenManus 也一夜之间爆火&#xff0c;那么作为程序员应该来尝尝鲜 1、前期准备 FastGithub&#xff1a;如果有科学上网且能正常访问 github 则不需要下载此软件&#xff0c;此软件是提供国内直接访问 githubGit&#…

【最新】DeepSeek 实用集成工具有那些?

deepseek 系列github仓库地址 【主页】deepseek-aiDeepSeek-R1DeepSeek-V3DeepSeek-VL2【本文重点介绍】awesome-deepseek-integration 注意&#xff1a;以下内容来自awesome-deepseek-integration DeepSeek 实用集成&#xff08;awesome-deepseek-integration&#xff09; 将…

开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器

开源&#xff01;速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器 目录 开源&#xff01;速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器本项目未经授权&#xff0c;禁止商用&#xff01;本项目未经授权&#xff0c;禁止商用&#xff01;本项目未经授权&…

Flink测试环境Standalone模式部署实践

1.JDK环境 参考官方文档&#xff1a; https://nightlies.apache.org/flink/flink-docs-release-1.20/release-notes/flink-1.18/ 2.下载Flink&#xff1a;https://flink.apache.org/downloads/ 本次验证用的是&#xff1a;https://www.apache.org/dyn/closer.lua/flink/flink…

在16卡服务器上使用最新版的CUDA和驱动训练`llama - 2 - 7b`和`llama - 2 - 70b`模型,并生成训练指标数据

要在16卡服务器上使用最新版的CUDA和驱动训练llama - 2 - 7b和llama - 2 - 70b模型&#xff0c;并生成训练指标数据&#xff0c;你可以按照以下步骤进行&#xff1a; 1. 环境准备 确保你的服务器已经安装了最新版的CUDA和驱动&#xff0c;并且安装了必要的Python库&#xff0…

macOS 终端优化

macOS 安装、优化、还原、升级 Oh My Zsh 完全指南 &#x1f680; Oh My Zsh 是 macOS 终端增强的利器&#xff0c;它能提供强大的自动补全、主题定制和插件支持&#xff0c;让你的终端更高效、更炫酷。本文将全面介绍 如何安装、优化、还原、重新安装和升级 Oh My Zsh&#x…

计算机网络--访问一个网页的全过程

文章目录 访问一个网页的全过程应用层在浏览器输入URL网址http://www.aspxfans.com:8080/news/index.aspboardID5&ID24618&page1#r_70732423通过DNS获取IP地址生成HTTP请求报文应用层最后 传输层传输层处理应用层报文建立TCP连接传输层最后 网络层网络层对TCP报文进行处…

CAAC无人机考证备考清单

一、培训机构内部的考试大纲/备考指南 《机长笔试大纲》 《机长口试大纲》 《教员笔试大纲》 《教员口试大纲》&#xff08;不同机构的文件、命名可能不同&#xff09; 二、培训机构内部题库 题库内容包含(仿照多旋翼题库制作&#xff09;&#xff1a; 分类 子分…

【BUG】类文件具有错误的版本 61.0, 应为 52.0,请删除该文件或确保该文件位于正确的类路径子目录中。

报错&#xff1a; [ERROR] 类文件具有错误的版本 61.0, 应为 52.0 [ERROR] 请删除该文件或确保该文件位于正确的类路径子目录中。 报错截图&#xff1a; 原因&#xff1a;Java 版本和 Spring 不兼容&#xff0c;显示 Spring 版本过高 解决方法 1. 使用更高版本的 J…

卷积神经网络(笔记01)

视觉处理三大任务&#xff1a;分类、目标检测、图像分割 CNN网络主要有三部分构成&#xff1a;卷积层&#xff08;Convolutional Layer&#xff09;、池化层&#xff08;Pooling Layer&#xff09;和激活函数 一、解释卷积层中的偏置项是什么&#xff0c;并讨论在神经网络中引…

Django-ORM-prefetch_related

Django-ORM-prefetch_related 模型定义N1 查询问题示例 使用 prefetch_related 优化查询处理更复杂的查询示例&#xff1a;预取特定条件的书籍示例&#xff1a;预取多个关联字段 性能比较注意事项总结 通过 Author 和 Books 两个模型来理解 Django 的 prefetch_related 方法。 …

Spring Boot3整合Knife4j(4.5.0)

整体概述 Spring Boot 是用于简化 Spring 应用开发的框架&#xff0c;通过自动配置和约定大于配置原则&#xff0c;能让开发者快速搭建和运行 Spring 应用。Knife4j 是基于 Swagger 增强的 API 文档生成工具&#xff0c;可方便展示和调试 API 接口&#xff0c;生成美观易用的 …

Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

K8S学习之基础二十四:k8s的持久化存储之pv和pvc

K8S的存储之pv和pvc 在 Kubernetes (k8s) 中&#xff0c;持久化存储是通过 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 来实现的。PVC 是用户对存储资源的请求&#xff0c;而 PV 是集群中的实际存储资源。PVC 和 PV 的关系类似于 Pod 和 Node 的关系。 Persisten…

【Hive】Hive安装

Hive 第一章 Hive的基础知识 第二章 Hive安装 第三章 DDL&#xff08;Data Definition Language&#xff09;数据定义 第四章 DML&#xff08;Data Manipulation Language&#xff09;数据操作 第五章 Hive查询 第六章 Hive的基础知识 第七章 Hive函数 第八章 分区表和分桶表 …

关于C/C++语言的初学者在哪刷题,怎么刷题

引言&#xff1a; 这篇博客主要是针对初学者关于怎么在网上刷题&#xff0c;以及在哪里刷题。 1.介绍平台&#xff08;在哪刷题&#xff09;&#xff1a; 1.牛客牛客网https://www.nowcoder.com/ &#xff1a;有许多面试题&#xff0c;也有许多供学习者练习的题 2.洛谷洛谷 …

k8s面试题总结(十四)

什么是Helm&#xff1f; Helm是一个k8s的包管理工具&#xff0c;它简化了应用程序在k8s集群中的部署&#xff0c;管理和维护。类似于rpm包和yum之间的关系。 K8s传统方式&#xff1a;类似于rpm安装包的方式&#xff0c;逐步进行安装&#xff0c;遇到依赖还得解决依赖问题 he…

物理服务器的作用都有哪些?

物理服务器是一种高性能的专用服务器&#xff0c;一般会被运用在大型组织和云计算环境当中&#xff0c;可以为企业和用户提供数据存储和计算资源&#xff0c;帮助企业提高整体的工作效率和快速实现业务目标。 物理服务器有着较高的安全性&#xff0c;企业可以将重要的数据信息备…