前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python算法-查找

Python算法-查找

作者头像
summerking
发布2022-09-16 12:18:34
5770
发布2022-09-16 12:18:34
举报
文章被收录于专栏:summerking的专栏

顺序查找VS二分法查找

查找一个列表中的元素,返回下标

# 顺序查找

  • 顺序挨个找,直到与目标值相等,返回下标。
代码语言:javascript
复制
def linear_search(li, val):
    for index, v in enumerate(li):
        if v == val:
            return index
        else:
            return None

# 二分法查找

  • 直接和中间值比较,如果刚好相等则返回下标;如果比中间值小,那么最右限变为中间限-1
代码语言:javascript
复制
def binary_search(li, val):
    left = 0
    right = len(li) - 1
    while left <= right:
        mid = (left + right) // 2
        if li[mid] == val:
            return mid
        elif li[mid] > val:
            right = mid - 1
        else:
            left = mid + 1
    else:
        return None


li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(binary_search(li, 2))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 顺序查找
  • # 二分法查找
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档