栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

二分法查找

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二分法查找

1·关键词:有序数列、对半分、取有用的一半

2·我所理解的过程:我们之间玩一个猜数游戏,规定你在1-100 中想一个数字,然后我每次猜一个数字,你根据你所选择的数字对我猜的数字进行评假:只可以说大了或小了。而我每次猜数的方式为取中间,针对你的每一次结果取中间;假如你想的数字是78,那我第一次猜50,你说小了,证明你的数据不在1-50,在51-100中,我在次取中间75,你说小了,所以你的数据不在51-75中,而在76-100中,在以此类推取猜你所想的数值;这就是二分法的处理方式;

3·二分法必须适用于有序数列;

4·一个数列有n个数据,使用简单查找则需要进行n次,使用二分法则只需要Log2 n 步;

5·执行二分法的python代码:元素和桶有关(元素是我们所需要存放的数据)(桶就是数据的载体,他是一直存在的。桶的编号是从零开始的,第一个桶的位置称为#0,第二个桶的位置称为#2,依次类推)

函数binary_search接收受一个有序的数组和一个元素;指定的元素包含在数组中,这个函数将会返回其原来的位置。

low=0
high=len(list)-1
#你每次都是检查中间的元素,如果不是偶数,min=(low+high)/2;而python则会自动mid向下圆整;
guss=list[mid]
if guess low=mid+1
#如果你猜的数据大了,则改成high;完整的代码如下;

defbinary_search(list,item)
low = 0
high = len(list)-1
while low <=high
mid=(low + high)
guess = list[mid]
if guess == item
return mid
if guess >item
high = mid -1
else:
low = mid +1
return None

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969122.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号