【算法打卡60天】Day13二分查找(上):如何用最省内存的方式实现快速查找功能?

Day13
学习内容 : 二分查找(上):如何用最省内存的方式实现快速查找功能?

1.无处不在的二分思想
什么是二分查找?
二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。
常见的二分查找:猜字游戏

2.O(logn) 惊人的查找速度
二分查找的时间复杂度:O(logn)
熟悉复杂度的推导过程

3.二分查找的递归与非递归实现
简单的二分查找:有序数组中不存在重复元素
容易出错的3个地方

  1. 循环退出条件
    2.mid 的取值
    3.low 和 high 的更新

二分查找除了用循环来实现,还可以用递归来实现

4.二分查找应用场景的局限性
二分查找只能用在数据是通过顺序表来存储的数据结构上
其次,二分查找针对的是有序数据。
再次,数据量太小不适合二分查找。
最后,数据量太大也不适合二分查找。

如何在 1000 万个整数中快速查找某个整数?
答:先对这 1000 万数据从小到大排序,然后再利用二分查找算法。

本文参考【极客时间】专栏《数据结构与算法之美》

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容