经典算法之顺序查找

经典算法之顺序查找

活动地址:CSDN21天学习挑战赛

前言:
作者是一个基础小白,现就读于天津理工大学通信工程,希望通过博客的方式记录我自己的学习笔记以及学习收获,并且希望能够与大家一同分享,一同交流。

/**/再长的路,一步一步也能走完,再短的路,不迈开双脚也无法到达.

一、顺序查找

1.元素查找介绍

基本概念:

  • 生活中处处有查找,例如:搜索引擎,大数据问题等等。
  • 学习查找要解决的问题:对于超大数据量,如何提高查找的运行。
  1. 关键码:用以标识一个记录的某个数据项。如果该关键码可以唯一的标识一条记录,则称为主关键码,反之称为次关键码。
  2. 查找:也称为检索,在具有相同类型的记录中集中找出满足给定条件的记录。
  3. 查找表:是由同一类型的元素(或记录)构成的集合.
  4. 关键字:是数据元素中某个数据项的值,也称为键值,对应到具体的数据结构,可以理解为一维数组.

2.顺序查找

也称线性查找,是最简单的查找方式.
即从数组的一边开始,逐个进行元素的比较,如果与给定的待查找元素相同,则查找成功,如果整个扫描结束后,仍未找到相同的元素,则查找失败.

下图表示顺序查找数字55:
在这里插入图片描述
思路:

  • 输入

n个数的序列,通常直接存放在数组中,可以是任何顺序.
代查找元素的关键词.

  • 输出

查找成功:返回元素所在位置的编号.
查找失败:返回-1或自定义的失败标识.

  • 执行过程:
    从一组数组的一端开始逐个扫描,换个元素进行比较,直到找到元素位置,或将所有的元素扫描一遍.
    优点:
  • 算法简单且使用面较广,对表中记录的存储没有任何要求,顺序存储和链接存储均可.
  • 对表中记录的有序性也没有要求,无论记录是否按关键码有序均可.
    缺点:
  • 查找效率低,特别是当待查找集合中元素较多时,不推荐使用顺序查找.

3.伪代码在这里插入图片描述

使用循环结构进行集合的遍历,将每次取到的元素与key进行比较,若相等,则循环结束.

i=1;
while (i<A.length)
if A[i]=key;
return i;
i++;
return -1;

二、算法实践

C++实现顺序查找,代码如下:

#include<iostream>
using namespace std;
const int n = 10;
int main()
{
	int a[n] = { 12,27,63,45,78,41,98,46,78,100 };
	int x = -1;
	int i = 0;
	int key = 46;
	for (i = 0; i < n; i++) {
    if (a[i] == key)
		{
		x = i;
			break;
		}
	}
	if (x == -1)
		cout << "没有找到!" << endl;
		else
		cout << "找到了,位置在:" << i + 1 << " ," << "找到的值为:" << a[i] << endl;
	return 0![在这里插入图片描述](https://img-blog.csdnimg.cn/1e2199b7c2304bb389041a22efb585fb.jpeg#pic_center)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神秘的老年人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值