算法速成(四)五大经典查找之线性查找

在我们的生活中,无处不存在着查找,比如找一下班里哪个mm最pl,猜一猜mm的芳龄....... 对的 这些都是查找。

在我们的算法中,有一种叫做线性查找。

分为:顺序查找。

折 半查找。

查找有两种形态:

分为:破坏性查找,   比如有一群mm,我猜她们的 年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了。

哥不找23+ 的,所以此种查找破坏了原来的结构。

非破坏性查找, 这种就反之了,不破坏结构。

顺序查找:

这种非常简单,就是过一下数组,一个一个的比,找到为止。

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;   

 namespace Sequential
 {
     class Program
     {
         static void Main(string[] args)
         {
             List<int> list = new List<int>() { 2, 3, 5, 8, 7 };   

             var result = SequenceSearch(list, 3);   

             if (result != -1)
                 Console.WriteLine("3 已经在数组中找到,索引位置为:" + result);
             else
                 Console.WriteLine("呜呜,没有找到!");   

             Console.Read();
         }   

         //顺序查找
         static int SequenceSearch(List<int> list, int key)
         {
             for (int i = 0; i < list.Count; i++)
             {
                 //查找成功,返回序列号
                 if (key == list[i])
                     return i;
             }
             //未能查找,返回-1
             return -1;
         }
     }
 }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索list
, using
, system
, console
, 查找算法
, 顺序
, 经典查找
破坏性
线性查找算法、线性查找算法流程图、线性表的查找算法、线性代数速成、线性代数速成讲解,以便于您获取更多的相关知识。

时间: 2024-12-03 12:07:04

算法速成(四)五大经典查找之线性查找的相关文章

算法系列15天速成——第六天 五大经典查找【下】

大家是否感觉到,树在数据结构中大行其道,什么领域都要沾一沾,碰一碰. 就拿我们前几天学过的排序就用到了堆和今天讲的"二叉排序树",所以偏激的说,掌握的树你就是牛人了.   今天就聊聊这个"五大经典查找"中的最后一个"二叉排序树".   1. 概念:      <1> 其实很简单,若根节点有左子树,则左子树的所有节点都比根节点小.                              若根节点有右子树,则右子树的所有节点都比根节点大

算法系列15天速成 第六天 五大经典查找【下】_相关技巧

大家是否感觉到,树在数据结构中大行其道,什么领域都要沾一沾,碰一碰.就拿我们前几天学过的排序就用到了堆和今天讲的"二叉排序树",所以偏激的说,掌握的树你就是牛人了. 今天就聊聊这个"五大经典查找"中的最后一个"二叉排序树". 1. 概念:     <1> 其实很简单,若根节点有左子树,则左子树的所有节点都比根节点小.                             若根节点有右子树,则右子树的所有节点都比根节点大.     &

算法系列15天速成——第四天 五大经典查找【上】

在我们的生活中,无处不存在着查找,比如找一下班里哪个mm最pl,猜一猜mm的芳龄....... 对的这些都是查找.   在我们的算法中,有一种叫做线性查找. 分为:顺序查找.         折半查找.   查找有两种形态: 分为:破坏性查找,   比如有一群mm,我猜她们的年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了.                             哥不找23+的,所以此种查找破坏了原来的结构.        非破坏性查找,

算法速成(六)五大经典查找之二叉排序树

大家是否感觉到,树在数据结构中大行其道,什么领域都要沾一沾,碰一碰. 就拿我们前 几天学过的排序就用到了堆和今天讲的"二叉排序树",所以偏激的说,掌握的树你就是牛人了. 今天就聊聊这个"五大经典查找"中的最后一个"二叉排序树". 1. 概 念: <1> 其实很简单,若根节点有左子树,则左子树的所有节点都比根节点小. 若根节点有右子树,则右子树的所有节点都比根节点大. <2> 如图就是一个"二叉排序 树"

算法速成(二)七大经典排序之选择排序

今天说的是选择排序,包括"直接选择排序"和"堆排序". 话说上次"冒泡排序"被快 排虐了,而且"快排"赢得了内库的重用,众兄弟自然眼红,非要找快排一比高下. 这不今天 就来了两兄弟找快排算账. 1.直接选择排序: 先上图: 说实话,直接选择排序最类似于人的本能思想,比如把大小不一的玩具让三岁小毛孩对大小 排个序, 那小孩首先会在这么多玩具中找到最小的放在第一位,然后找到次小的放在第二位, 以此类推...... ,小 孩子多聪明

算法速成(一)七大经典排序

算法就好比程序开发中的利剑,所到之处,刀起头落. 针对现实中的排序问题,算法有七 把利剑可以助你马道成功. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Threading; namespace BubbleSort { public class Program { static void Ma

《数据结构与算法 C语言版》—— 2.3线性表的链式表示与实现

2.3线性表的链式表示与实现 线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素,它的存储位置可用一个简单.直观的公式来表示.然而,从另一方面来看,这个特点也造成了这种存储结构的弱点:在作插入或删除操作时,需移动大量元素.本节我们将讨论线性表的另一种表示方法--链式存储结构,其特点是用一组地址任意的存储单元存储线性表中的数据元素.由于它不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构所具有的弱点,但同时也失去了顺序表随机存取的特点

算法速成(十)栈

今天跟大家聊聊栈,在程序设计中,栈的使用还是非常广泛的,比如有"括号匹配问题","html 结构匹配问题". 所以说掌握了"栈"的使用,对我们学习算法还是很有帮助的. 一 : 概念 栈,同样是一种特殊的线性表,是一种Last In First Out(LIFO)的形式,现实中有 很多这样的例子, 比如:食堂中的一叠盘子,我们只能从顶端一个一个的取. 二:存 储结构 "栈"不像"队列",需要两个指针来维护,栈

算法速成(九)队列

可能大家都知道,线性表的变种非常非常多,比如今天讲的"队列",灰常有意思啊. 一:概念 队列是一个"先进先出"的线性表,牛X的名字就是"First in First Out(FIFO)", 生活中有很多这样的场景,比如读书的时候去食堂打饭时的"排队".当然我们拒绝插队. 二:存储结构   前几天也说过,线性表有两种"存储结构",① 顺序存储,②链式存储.当然"队列"也脱离 不了这两种服务