首页 > 编程语言 >C#线性查找算法

C#线性查找算法

时间:2024-12-14 11:34:53浏览次数:6  
标签:arr target C# 元素 int 算法 查找

前言

线性查找算法是一种简单的查找算法,用于在一个数组或列表中查找一个特定的元素。它从数组的第一个元素开始,逐个检查每个元素,直到找到所需的元素或搜索完整个数组。线性查找的时间复杂度为O(n),其中n是数组中的元素数量。

实现原理

  1. 从列表的第一个元素开始,逐个检查每个元素。
  2. 如果当前元素等于目标元素,则返回该元素的索引。
  3. 如果遍历完整个数组都没有找到匹配的值,则返回一个表示未找到的值(通常是-1)。

代码实现

		public static void LinearSearchRun()
		{
			int[] arr = { 2, 3, 4, 10, 40, 50, 100, 77, 88, 99 };
			int target = 100;

			int result = LinearSearch(arr, target);

			// 输出结果
			if (result == -1)
			{
				Console.WriteLine("元素未找到");
			}
			else
			{
				Console.WriteLine($"元素在索引 {result} 处找到,index = {result}");
			}
		}

		/// <summary>
		/// 线性查找函数
		/// </summary>
		/// <param name="arr">arr</param>
		/// <param name="target">target</param>
		/// <returns></returns>
		public static int LinearSearch(int[] arr, int target)
		{
			// 遍历数组
			for (int i = 0; i < arr.Length; i++)
			{
				// 如果找到目标值,返回其索引
				if (arr[i] == target)
				{
					return i;
				}
			}
			// 如果没有找到,则返回-1
			return -1;
		}

总结

线性查找算法简单易懂,适用于小规模数据集或无序数据集。其主要优点是实现简单,不需要对数据进行排序。然而,由于其时间复杂度为O(n),对于大规模数据集,效率较低。对于大规模数据集或需要频繁查找的场景,可以考虑使用更高效的查找算法,如二分查找(适用于有序数据集)或哈希查找。

标签:arr,target,C#,元素,int,算法,查找
From: https://www.cnblogs.com/chenshibao/p/18605887

相关文章

  • 织梦网站联系我们的修改,织梦CMS联系信息修改指南
    修改织梦CMS网站中的“联系我们”页面通常涉及编辑模板文件和内容。以下是详细的步骤:登录后台管理系统:使用管理员账号登录织梦CMS的后台管理系统。进入单页文档管理:进入“内容管理”->“单页文档管理”。编辑联系我们的页面:找到“联系我们”页面,点击“编辑”按......
  • 【每天一篇深度学习论文】残差Swin Transformer块与交叉注意力模块RCAM
    目录论文介绍题目:论文地址:创新点方法模型总体架构核心模块模型迁移消融实验论文介绍题目:Swinfsr:Stereoimagesuper-resolutionusingswinirandfrequencydomainknowledge论文地址:链接:https://openaccess.thecvf.com/content/CVPR2023W/NTIRE/papers/Ch......
  • C#二分查找算法
    前言二分查找算法是一种在有序数组中查找特定元素的搜索算法。实现原理二分查找的实现依赖于以下几个关键步骤:计算查找范围的中间索引。比较中间索引处的值与目标值。根据比较结果调整查找范围(左半部分或右半部分)。重复上述步骤直到找到目标值或查找范围为空。代码实现......
  • C#经典算法面试题
    1.递归算法1.1C#递归算法计算阶乘的方法一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。 ///<summary......
  • C# 面试常见递归算法
    前言今天我们主要总结一下C#面试中常见递归算法。C#递归算法计算阶乘的方法一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义......
  • 【无人船】基于模型预测控制(MPC)对USV进行自主控制研究(Matlab代码实现)
    ......
  • 用于变分自动编码器 (VAE) 的 Copula 变分贝叶斯算法(Matlab代码实现)
    ......
  • 【优化调度】基于遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)
     ......
  • Win11系统提示找不到WaaSMedicSvc.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个WaaSMedicSvc.dll文件(挑选合适的版本文件)......
  • AC 自动机
    写给自己看的。\(\mathrm{AC}\)自动机用在处理多个待匹配串的字符串匹配问题。首先建出字符集\(T\)的\(\mathrm{Trie}\)树\(T_t\),接着考虑类似\(\mathrm{kmp}\)的思想,令一个节点\(u\)的失配指针\(fail_u\)表示从根到\(u\)组成的字符串\(S\)的最长后缀,满足是......