python二分查找法详解_Python实现二分查找法(折半查找法)

Python实现二分查找法(折半查找法)

Mkdir700 • 2019 年 12 月 06 日

Loading...

下学期会学习算法,知乎上找到一本书,感觉还不错,值得提前学习学习

《你也能看得懂的 Python 算法书》

## 二分查找(折半查找法) ##

适用于已排好序的数组,对于较短的数组,使用一个一个的遍历查找与**二分查找**没有较大区别,但数组长度过长,使用二分查找更为高效

## 例题 ##

对已排序的数列`[1,3,5,6,7,8,13,14,15,17,18,24,30,43,56]` 使用二分查找指定元素的索引

## 代码 ##

```python

class Binary_search(object):

def handler(self,nums, val):

# 假如我想寻找13的位置

# 定义头指针和尾指针

head, tail = 0, len(nums) + 1

while tail - head != 1:

# 折半折半,先来折一半

mid = (head + tail) // 2

if nums[mid] > val:

tail = mid

else:

head = mid

# 判断最后一个值是否与目标值相等

if nums[head] == val:

print(head)

else:

print('不存在')

nums = [1, 3, 5, 6, 7, 8, 13, 14, 15, 17, 18, 24, 30, 43, 56]

s = Binary_search()

s.handler(nums, 6)

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值