算法简介——二分查找,时间复杂度,空间复杂度

二分查找与算法效率
本文介绍了二分查找算法及其优势,并对比了简单查找。同时,讲解了算法效率的评估方法,包括时间复杂度和空间复杂度的大O表示法。

前言

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法是一组完成任务的指令。任何代码片段都可视为算法。

二分查找

我相信大家可能都看过或者玩过一个游戏——数字炸弹,在一个数字范围内,有一个数字作为炸弹,谁猜中这个炸弹就要被惩罚。
规则是猜中被惩罚,那我们改一改,猜中了有奖励。此时你的目标就是以最少的此次数猜中这个数字,你每次猜测后,我会说小了,大了或对了。假设我们以1-100为范围,你从1开始依次往上猜,那么这个过程就会是这样
在这里插入图片描述
而这便是简单查找,也可以说是傻找,运气好你可能一次就能猜对,运气差,你可能得猜99次。
下面是一种更好得查找方式,也就是二分查找,每次猜数我们从一半开始,这样每次就能排除一半的数字。
在这里插入图片描述
在这里插入图片描述
而这我们最多只需要七次便能猜到。
如果一个列表,里面有240000个元素,我们通过简单查找,如果要查找的元素在列表尾部,可能需要240000步,但通过二分查找,只需要18步,即对包含n个元素的列表,用二分查找,最多只需要log2n步,而简单查找需要n步,但仅当列表是有序的,二分查找才适用。
我们用python代码来实现看看

# @Time:2022/1/2614:50
# @Author:中意灬
# @File:二分查找.py
# @ps:tutu qqnum:2117472285

#二分查找
import time
def Binary_search(lis,item):
    low=0
    high=len(lis)-1#查找列表的范围

    while low<=high:#只要范围没缩小到0,就继续查找
        mid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值