【C++研发面试笔记】18. 常用算法-查找算法
2016-10-03 21:40
295 查看
【C++研发面试笔记】18. 常用算法-查找算法
查找算法一般是跟排序算法相关,本节主要介绍五类常用查找算法。其中,顺序查找是纯粹的查找方法,二分查找是依据已排序序列进行的快速查找方法,后三种都多少涉及到先排序再查找的策略。18.1 顺序查找算法
顺序查找没有什么特别之处,就是从头到尾搜索一遍,算法复杂度为O(n)。18.2 二分查找算法
二分查找算法又名折半查找,原理就是二分法,其一般针对于顺序排列的数据,算法复杂度为O(logN)。18.3 分块查找算法(桶查找)
以增加空间复杂度为代价(存储每块中的最大值已经最大值的位置),为原数组做一个索引(索引本身是递增有序的),这样先查索引,再查块内位置。如果索引的选择科学有效,则可以获得比顺序查找快的速度。18.4 二叉排序树上的查找
由如何改进二分查找的缺陷(插入和删除操作需要移动大量的数据)而得出的一种算法,用二叉排序树存储数据,由于二叉树的插入和删除操作的时间复杂度相对低,而且也支持二分查找,所以在动态数据查找方面优于二分查找。18.5 散列技术下的查找
将元素的值和其位置直接对应,对应的方法就是散列函数(如平方取中,除余法等等);然而再好的散列函数也会引起冲突,则解决冲突的方法是如拉链法,线性探测法,二次探测法等等。这篇博文是个人的学习笔记,内容许多来源于网络(包括CSDN、博客园及百度百科等),博主主要做了微不足道的整理工作。由于在做笔记的时候没有注明来源,所以如果有作者看到上述文字中有自己的原创内容,请私信本人修改或注明来源,非常感谢>_<
相关文章推荐
- 【C++研发面试笔记】22. 常用算法-字符串查找算法
- 【C++研发面试笔记】21. 常用算法-STL中常用算法函数
- 【C++研发面试笔记】20. 常用算法-路径搜索算法(图算法)
- 【C++研发面试笔记】19. 常用算法-排序算法
- 【C++研发面试笔记】4. 指针与引用
- 【C++研发面试笔记】9. 基本数据结构-二叉查找树BST
- 【C++研发面试笔记】5. C++ STL数据结构
- 【C++研发面试笔记】17. 基本数据结构-图结构
- 【C++研发面试笔记】7. 基本数据结构-单链表
- 【C++研发面试笔记】15. 基本数据结构-字符串string
- 【C++研发面试笔记】11. 基本数据结构-红黑树RBT
- 【C++研发面试笔记】2. 多态性
- 【C++研发面试笔记】8. 基本数据结构-二叉堆
- 【C++研发面试笔记】13. 基本数据结构-哈夫曼树、树堆及其他树簇
- 【C++研发面试笔记】12. 基本数据结构-B树簇
- 【C++研发面试笔记】10. 基本数据结构-平衡二叉搜索树AVL
- 【C++研发面试笔记】6. 基本数据结构-数组
- 【C++研发面试笔记】3. 命名空间与内存管理
- 【C++研发面试笔记】14. 基本数据结构-查找表与并查集
- 【C++研发面试笔记】16. 基本数据结构-队列queue与栈stack