查找算法是指:从一些数据之中,找到一个特殊的数据的实现方法。查找算法与遍历有极高的相似性,唯一的不同就是查找算法可能并不一定会将每一个数据都进行访问,有些查找算法如二分查找等,并不需要完全访问所有的数据。
查找算法适用于很多场景,最典型的应用场景就是已知次品商品的特征,如何从一堆商品当中查找出这些次品。
顺序查找算法是最简单的查找算法,其意思为:线性的从一个端点开始,将所有的数据依次访问,并求得所需要查找到的数据的位置,此时,线性查找可以称呼为遍历。
一个最简单的例题:有6个商品,他们每一个商品的重量都是10,但其中有一个商品是次品,他的重量只有9,请设计代码将其找出,为了简化内容,我们直接利用数组Shangping存储内容。
#include<iosteam> using namespace std; int main(){ int Shangping[6]={10,10,9,10,10,10} for(int i=0;i<6;i++){ if(Shangping[i]==9){ printf("找到次品,他的位置在:%d",i+1); } } return 0; }
可以见到,本题中利用一层for循环即可找寻到目标,这相当容易理解,即使映射到链表中进行线性的查找依旧很容易理解,而在接下来的章节内,我们将依次学习折半查找(又名二分查找)以及分块查找等静态查找方法,也会讲解二叉排序树和平衡二叉树这些利用数据结构进行操作的动态查找方式。
本文固定URL:https://www.dotcpp.com/course/154
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程