顺序查找封面背景
中职 C# 程序设计 · 专项微课
6-8 分钟

拆解顺序查找
核心重难点

逐个比较 · 找到即停 · 未找到返回-1
最基础的数据查找算法,零基础也能轻松学懂

同学们大家好!顺序查找是最基础的查找算法。当数组中的元素无序时,我们可以使用顺序查找法进行数据的查找。它的核心思路是从第一个元素开始,逐个与需要查找的元素进行比较,找到就返回位置,找不到就返回-1。今天这节微课,我们就逐层拆解顺序查找的所有重点和难点。

Contents · 本课内容

4 大模块 · 全流程覆盖

从原理到实训,让你独立看懂、理解通透、会写会改代码

01

核心算法思想 + 查找逻辑

逐个比较、找到即停、未找到返回-1

02

代码编写 + 找到与未找到处理

break跳出循环、i==10判断未找到

03

实训案例:10个数组查找

数组 [10,23,5,7,16,8,45,92,3,11] 查找全流程

04

VS2010 示范操作 + 完整代码

新建项目到运行调试,手把手实操

本节课我们将逐一攻克4大模块:核心算法思想与查找逻辑、代码编写与结果处理、实训案例、以及VS2010示范操作。循序渐进,零基础也能轻松学懂顺序查找。

重点突破 · 01

顺序查找
核心算法思想

从第一个元素开始逐个比较,找到即返回位置,找不到返回-1

首先我们掌握本节课第一个核心重点:顺序查找的算法思想。顺序查找的核心是从数组的第一个元素开始,逐个与目标值进行比较。当比较到元素值相同(即k=x)时,返回元素k的下标;如果比较到最后都没有找到,则返回-1(或"没找到")。

核心原理 · 逐个比较 → 找到即停 → 返回位置

以数组 [10, 23, 5, 7, 16, 8, 45, 92, 3, 11] 为例

观察完整查找过程:从第一个元素开始,逐个与目标值比较

场景1:查找 7(找到)
场景2:查找 99(没找到)
查找目标 x = 7
蓝色=未检查 · 橙色=正在比较 · 绿色=找到 · 灰色=已跳过
10
23
5
7
16
8
45
92
3
11
 
当前比较:- 当前步骤:- 查找结果:待查找
我们以数组10、23、5、7、16、8、45、92、3、11为例。场景1查找7:从第一个元素10开始比较,10不等于7;继续比较23,不等于7;比较5,不等于7;比较7,等于7,找到了!输出"找到了!该数字是数组中第4个元素",然后break跳出循环。场景2查找99:从头到尾比较完所有10个元素,都不等于99,此时i等于10,输出"没找到!"。

难点突破 · 01

查找逻辑
与结果处理

循环遍历 + 条件比较 + break跳出 + 越界判断

理解了算法思想,我们攻克本节课的难点:查找逻辑与结果处理。顺序查找的难点在于两个关键点:一是找到后如何用break跳出循环,二是未找到时如何通过i==10来判断。

难点突破 · 循环遍历 + 条件比较

逐个比较,找到即停

顺序查找核心口诀:遍历、比较、找到break、未找到判断

for 循环

🔄 从头到尾逐个遍历

  • i = 0 开始,到 i = 9 结束
  • 共比较 10 次(数组长度)
  • 每次比较 arr[i] 与目标值 num
  • arr[i] == num,找到目标
for (i = 0; i <= 9; i++)
if + break

🎯 找到即停 + 未找到判断

  • arr[i] == num,输出位置,break 跳出
  • break 后 i 的值 < 10(未走完循环)
  • 若循环正常结束,i == 10
  • i == 10 说明没找到,输出"没找到!"
if (i == 10) → 没找到!

关键理解:break 让 i 停在找到的位置;如果没 break,循环走完后 i = 10,正好用来判断"没找到"

顺序查找的核心逻辑可以总结为两部分。第一部分是for循环,从头到尾遍历数组的每个元素。第二部分是if判断和break:如果arr[i]等于num,就输出找到了并break跳出循环。break后i的值会停在找到的位置,小于10。如果整个循环走完都没有break,说明没找到,此时i等于10。这就是为什么我们用if(i==10)来判断"没找到"。

难点突破 · 两种结果的处理方式

找到 vs 没找到

break 跳出 → 找到了;循环走完 → 没找到

情况1:找到了

当 arr[i] == num 时,输出位置并 break

if (arr[i] == num)
{
  Console.WriteLine("找到了!该数字是数组中第{0}个元素", i + 1);
  break;
}

break 后:i 停在找到的位置(i < 10)

情况2:没找到

循环走完 10 次都没匹配,i 等于 10

if (i == 10)
{
  Console.WriteLine("没找到!");
}

循环结束后:i = 10,说明全部比较完毕未找到

顺序查找有两种结果。第一种是找到了:当arr[i]等于num时,输出"找到了!该数字是数组中第i+1个元素",注意这里用i+1是因为数组下标从0开始,而用户看到的是第几个元素。然后break跳出循环。第二种是没找到:如果for循环走完全部10次都没有break,i的值会变成10,我们通过if(i==10)来判断,输出"没找到!"。这就是break和i==10配合使用的巧妙之处。

代码实战

C# 代码
逐行分析

数组定义 → 输出数组 → 输入目标 → 循环查找 → 结果输出

接下来我们进入代码实战环节,逐行分析顺序查找的C#代码。代码分为五个部分:定义数组、输出原始数组、接收用户输入、循环查找、输出结果。

代码实战 · 逐行拆解

顺序查找完整代码

重点关注:数组定义、用户输入、循环查找、break与i==10

Program.cs — 顺序查找法
static void Main(string[] args) { // 1. 定义数组 int[] arr = new int[] { 10, 23, 5, 7, 16, 8, 45, 92, 3, 11 }; int num, i; // 2. 输出原始数组 Console.WriteLine("***顺序查找法***"); Console.WriteLine("数组中数据为:"); for (i = 0; i <= 9; i++) { Console.Write(arr[i] + " "); } Console.WriteLine(); // 3. 接收用户输入 Console.Write("请输入待查找数据:"); num = int.Parse(Console.ReadLine()); // 4. 循环查找 for (i = 0; i <= 9; i++) { if (arr[i] == num) { Console.WriteLine("找到了!该数字是数组中第{0}个元素", i + 1); break; } } // 5. 判断未找到 if (i == 10) { Console.WriteLine("没找到!"); } Console.ReadLine(); }
这段代码分为5个部分。第1部分定义数组arr,包含10个元素。第2部分用for循环输出原始数组。第3部分用Console.Write提示用户输入,用int.Parse将输入字符串转为整数存入num。第4部分是核心查找循环,for循环i从0到9,如果arr[i]等于num就输出找到了并break。第5部分在循环之后判断if(i==10),如果是10说明没找到,输出没找到。

代码实战 · 关键点深度解读

3 个关键代码段

📥

用户输入转换

num = int.Parse(
Console.ReadLine())

Console.ReadLine()读取用户输入的字符串,int.Parse()将其转为整数。注意:输入必须是有效数字,否则会报错。

🎯

找到即停 break

if (arr[i] == num)
{ ...; break; }

找到目标后用break立即跳出循环,不再继续比较。break后i停在当前找到的位置,不会变成10。

🔍

越界判断 i==10

if (i == 10)
{ "没找到!" }

for循环条件是i<=9,走完后i=10。用i==10判断循环是否走完,走完说明没找到。这是巧妙的越界判断技巧。

💡 易错提醒:输出位置时用的是 i + 1 而不是 i,因为数组下标从 0 开始,而用户看到的是"第几个"元素(从1开始计数)。

这里有3个关键代码段需要特别注意。第一个是int.Parse,将用户输入的字符串转为整数,如果输入非数字会抛出异常。第二个是break,找到后立即跳出循环,这是效率的关键。第三个是if(i==10),这是利用循环变量越界的特性来判断"没找到"——循环条件是i<=9,走完10次后i变成10,正好用来判断。另外特别提醒:输出位置用i+1而不是i,因为数组下标从0开始,而用户要的是"第几个"。

实训案例 · 【实训4-1】

顺序查找
实训实战

数组 [10,23,5,7,16,8,45,92,3,11] · 用户输入数字查找

现在进入实训环节。实训内容是:在给定数组arr中查找一个用户输入的数字,若找到则输出"找到了!"并给出该数字在数组中的位置,若未找到则输出"没找到!"。

实训4-1 · 算法步骤分析

顺序查找算法步骤

当数组中的元素无序时,使用顺序查找法进行数据的查找

1

定义数组

声明 int 数组 arr,包含 10 个无序元素:10, 23, 5, 7, 16, 8, 45, 92, 3, 11

2

输出数组

用 for 循环遍历输出数组所有元素,让用户看到待查找的数据范围

3

输入目标

提示用户输入待查找的数字,用 int.Parse 将输入转为整数存入 num

4

逐个比较

for 循环 i 从 0 到 9,每次比较 arr[i] 与 num,若相等则输出位置并 break

5

判断结果

循环结束后检查 if(i==10),若是则输出"没找到!",否则说明已找到

算法特点:顺序查找法核心是从第一个元素 k 开始逐个与需要查找的元素 x 进行比较,当 k=x 时返回下标,比较到最后都没有找到则返回-1。缺点是数据量很大时效率很低。

实训分析:顺序查找算法的核心是从第一个元素k开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即k=x)时返回元素k的下标,如果比较到最后都没有找到,则返回-1(或"没找到")。此种方法的缺点是,如果数据量很大,效率会很低。我们分5步完成:定义数组、输出数组、输入目标、逐个比较、判断结果。

VS2010 · 新建项目操作步骤

新建项目 + 编写代码

运行 Visual Studio 2010步骤1

双击桌面 Microsoft Visual Studio 2010 图标,启动开发环境

新建项目步骤2

选择菜单项"文件" → "新建" → "项目",打开"新建项目"对话框

选择项目类型步骤3

在左侧选择"Visual C#"下的"Windows",在模板列表中选择"控制台应用程序"

输入代码步骤4

系统进入代码编辑环境后,在 static void Main(string[] args) 代码段中输入顺序查找代码

运行调试步骤5

按 F5 或点击工具栏"启动调试"按钮,运行程序并测试查找功能

示范操作步骤:第一步运行Microsoft Visual Studio 2010。第二步选择菜单项"文件"-"新建"-"项目",打开"新建项目"对话框。第三步选择"Visual C#"下的"Windows",在模板列表选择"控制台应用程序"。第四步在static void Main(string[] args)代码段中输入顺序查找代码。第五步按F5运行调试。

实训代码 · 完整实现

10 个数顺序查找完整代码

在 Main 方法中输入以下代码

Program.cs — 顺序查找法实训
static void Main(string[] args) { int[] arr = new int[] { 10, 23, 5, 7, 16, 8, 45, 92, 3, 11 }; int num, i; Console.WriteLine("***顺序查找法***"); Console.WriteLine("数组中数据为:"); for (i = 0; i <= 9; i++) { Console.Write(arr[i] + " "); } Console.WriteLine(); Console.Write("请输入待查找数据:"); num = int.Parse(Console.ReadLine()); // 在数组arr中查找输入的数据num for (i = 0; i <= 9; i++) { if (arr[i] == num) { Console.WriteLine("找到了!该数字是数组中第{0}个元素", i + 1); break; } } if (i == 10) { Console.WriteLine("没找到!"); } Console.ReadLine(); }
程序运行结果
> ***顺序查找法*** > 数组中数据为: 10 23 5 7 16 8 45 92 3 11 > 请输入待查找数据:7 找到了!该数字是数组中第4个元素 ──────────────────────── > ***顺序查找法*** > 数组中数据为: 10 23 5 7 16 8 45 92 3 11 > 请输入待查找数据:99 没找到!
这是完整的实训代码。定义数组arr有10个元素10、23、5、7、16、8、45、92、3、11。先输出原始数组。然后接收用户输入的数字num。用for循环从0到9逐个比较,如果arr[i]等于num就输出"找到了!该数字是数组中第i+1个元素"并break。循环结束后判断if(i==10)输出"没找到!"。运行结果展示了两种情况:输入7时找到第4个元素,输入99时没找到。

Summary · 核心口诀总结

五大要点,一次吃透顺序查找

从原理到实训,截图保存随时复习

1

核心思想

从第一个元素开始,逐个与目标值比较,找到返回位置,找不到返回-1

2

循环遍历

for (i=0; i<=9; i++) 从头到尾遍历数组每个元素

3

找到即停

arr[i]==num 时输出位置并 break,i 停在找到的位置

4

未找到判断

循环走完后 i==10,用 if(i==10) 判断"没找到"

5

效率特点

优点:简单直观,无需排序即可查找。缺点:数据量大时效率低,最坏情况需比较 n 次

总结五大要点:第一,核心思想是从第一个元素开始逐个比较。第二,用for循环遍历数组。第三,找到后用break跳出循环。第四,用i==10判断是否没找到。第五,优点是简单直观无需排序,缺点是数据量大时效率低。记住这些要点,顺序查找就完全掌握了。

感谢学习

谢谢!

从逐个比较到找到即停,顺序查找的核心你已全部掌握

这节微课就到这里。我们从算法思想、查找逻辑、代码编写到实训案例,完整拆解了顺序查找的所有重点和难点。希望大家课后多加练习,熟练掌握顺序查找算法。