1.二分查找
二分查找也称为折半查找,它是一种效率较高的查找方法。二分查找的使用前提是线性表已经按照大小排好了序。这种方法充分利用了元素间的次序关系,采用分治策略。基本原理是:首先在有序的线性表中找到中值,将要查找的目标与中值进行比较,如果目标小于中值,则在前半部分找,如果目标小于中值,则在后半部分找;假设在前半部分找,则再与前半部分的中值相比较,如果小于中值,则在中值的前半部分找,如果大于中值,则在后半部分找。以此类推,直到找到目标为止。

假设我们要在 2,6,11,13,16,17,22,30中查找22,上图所示,则查找步骤为:
- 首先找到中值:中值为13(下标:int middle = (0+7)/2),将22与13进行比较,发现22比13大,则在13的后半部分找;
- 在后半部分 16,17,22,30中查找22,首先找到中值,中值为17(下标:int middle=(0+3)/2),将22与17进行比较,发现22比17大,则继续在17的后半部分查找;
- 在17的后半部分 22,30查找22,首先找到中值,中值为22(下标:int middle=(0+1)/2),将22与22进行比较,查找到结果。
二分查找大大降低了比较次数,二分查找的时间复杂度为:

本文详细介绍了二分查找算法的工作原理和在有序线性表中的应用,通过实例展示了查找过程,并分析了其时间复杂度。接着,文章讨论了在频繁修改的数据结构中,二叉查找树(BST)的引入及其特点,说明了BST如何结合快速查找和插入的优势,并给出了查找和最坏情况下的时间复杂度分析。
最低0.47元/天 解锁文章
1223

被折叠的 条评论
为什么被折叠?



