目录
前言
查找和排序是数据结构与算法中不可或缺的一环,是前辈们在算法道路上留下的重要且方便的一些技巧,学习这些经典的查找和排序也能让我们更好和更快的解决问题。在这个专栏中我们会学习六大查找和十大排序,而本篇将详细讲解其中的三大基础查找——顺序查找、折半(二分)查找、分块(索引)查找
一、查找的基本概念
这些概念非常的简单,我们只需要快速的过一遍即可;
1.静态和动态查找
- 静态查找:数据集合相对来说比较稳定,不需要进行插入和删除;
- 动态查找:在查找的过程中同时需要插入和删除的操作;
2.内查找和外查找
- 在内存中进行的是内查找;
- 在外存(硬盘)中进行的是外查找;
3.平均查找长度ASL
- 也就是评判查找的效率的要素,越小越好,其中N是查寻元素的个数,P是查到概率,Pi=1/n,通常假设每个元素查找概率相同,C是找到第 i 个元素的次数;
二、三大基础查找
1.顺序查找
顺序查找那是非常的简单,就是用 for循环遍历数据去判断就行了; 虽然顺序查找简单,但它是唯一 一 个可以针对于无序的数据进行查找;
即使是顺序查找也是有优化的方法的,这里还可以提一句,我们针对一个查找算法进行优化就是减小在上文中提到的平均查找长度ASL;(在真实项目中)那么对于顺序查找而言我们只需要在插入数据的时候把相对被查找概率大的数据放在前面;