Summer's Blog
😈酷炫主页
✨运维
🎉安装
👀踩坑
  • k8s
  • shell
  • python
  • redis
  • elasticsearch
  • mysql
  • ceph
  • spark
  • 关于
  • 思维
  • 命令
  • 友链
  • 分类
  • 标签
  • 归档
👨‍👩‍👦‍👦腾讯云社区
🗣GitHub

Summer———夏苏文

💨运维界的前行者
😈酷炫主页
✨运维
🎉安装
👀踩坑
  • k8s
  • shell
  • python
  • redis
  • elasticsearch
  • mysql
  • ceph
  • spark
  • 关于
  • 思维
  • 命令
  • 友链
  • 分类
  • 标签
  • 归档
👨‍👩‍👦‍👦腾讯云社区
🗣GitHub
  • K8s

  • shell

  • spark

  • Python

    • Python实现ssh远程执行
    • Python搭建http共享文件
    • Python合并多个excl表格
    • Python提取log参数生成图表
    • Python算法-冒泡排序
    • Python算法-查找
      • 顺序查找
      • 二分法查找
    • Python算法-汉诺塔
    • Python通过librbd操作ceph
  • Redis

  • ceph

  • Elasticsearch

  • Mysql

  • 学习
  • Python
summer
2021-11-09

Python算法-查找

顺序查找VS二分法查找

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

# 顺序查找

  • 顺序挨个找,直到与目标值相等,返回下标。
def linear_search(li, val):
    for index, v in enumerate(li):
        if v == val:
            return index
        else:
            return None
1
2
3
4
5
6

# 二分法查找

  • 直接和中间值比较,如果刚好相等则返回下标;如果比中间值小,那么最右限变为中间限-1
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))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#python#算法
上次更新: 11/23/2021, 4:41:08 PM
Python算法-冒泡排序
Python算法-汉诺塔

← Python算法-冒泡排序 Python算法-汉诺塔→

最近更新
01
centos8安装部署ovirt-engine
11-21
02
安装Acunetix
11-02
03
三大漏洞扫描工具报告获取
05-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 夏苏文 | MIT License

网站已在灾难中运行:

蜀ICP备2022029853号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式