Python语言基础
Python语言进阶
Python数据结构

Python 二分查找

Python 二分查找的例子
二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。
# Filename : example.py
# DateTime : 2020-07-20
# author by : www.lidihuo.com
 
# 返回 x 在 arr 中的索引,如果不存在返回 -1
def binarySearch (arr, l, r, x):
 
    # 基本判断
    if r >= l:
 
        mid = int(l + (r - l)/2)
 
        # 元素整好的中间位置
        if arr[mid] == x:
            return mid
 
        # 元素小于中间位置的元素,只需要再比较左边的元素
        elif arr[mid] > x:
            return binarySearch(arr, l, mid-1, x)
 
        # 元素大于中间位置的元素,只需要再比较右边的元素
        else:
            return binarySearch(arr, mid+1, r, x)
 
    else:
        # 不存在
        return -1
 
# 测试数组
arr =[2, 3, 4, 10, 40,39,34,12,5566,213,24526,7878,90]
x = 213
 
# 函数调用
result = binarySearch(arr, 0, len(arr)-1, x)
 
if result != -1:
    print ("元素在数组中的索引为 %d" % result )
else:
    print ("元素不在数组中")
执行以上代码输出结果为:
元素在数组中的索引为 9

Python 更多应用实例

Python 实例
Python Hello World 实例
Python 数字求和
Python 平方根
Python 二次方程
Python 计算三角形的面积
Python 计算圆的面积
Python 随机数生成
Python 摄氏温度转华氏温度
Python 交换变量
Python if 语句
Python 判断字符串是否为数字
Python 判断奇数偶数
Python 判断闰年
Python 获取最大值函数
Python 质数判断
Python 输出指定范围内的素数
Python 阶乘实例
Python 九九乘法表
Python 斐波那契数列
Python 阿姆斯特朗数
Python 进制转换
Python ASCII码与字符相互转换
Python 最大公约数算法
Python 最小公倍数算法
Python 简单计算器实现
Python 生成日历
Python 使用递归斐波那契数列
Python 返回对象的内存地址
Python 计算字符串型表达式的值
Python 真假判断
Python 返回对象哈希值
Python 字符串格式化
Python 两种创建属性方法
Python 一键查看对象所有方法
Python 绘制柱状图和折线图
Python 文件 IO
Python 字符串判断
Python 字符串大小写转换
Python 计算每个月天数
Python 获取昨天日期
Python list 常用操作
Python 约瑟夫生者死者小游戏
Python 五人分鱼
Python 实现秒表功能
Python 计算 n 个自然数的立方和
Python 计算数组元素之和
Python 数组翻转指定个数的元素
Python 将列表中的头尾两个元素对调
Python 将列表中指定的两个元素对调
Python 翻转列表
Python 判断元素是否在列表中存在
Python 清空列表
Python 复制列表
Python 计算元素在列表中出现的次数
Python 计算列表元素之和
Python 计算列表元素之积
Python 查找列表中最小元素
Python 查找列表中最大元素
Python 移除字符串中的指定位置字符
Python 判断字符串是否存在子字符串
Python 判断字符串长度
Python 使用正则表达式提取字符串中的 URL
Python 将字符串作为代码执行
Python 字符串翻转
Python 对字符串切片及翻转
Python 按键或值对字典进行排序
Python 计算字典值之和
Python 移除字典点键值(key/value)对
Python 合并字典
Python 将字符串的时间转换为时间戳
Python 获取几天前的时间
Python 将时间戳转换为指定格式日期
Python 打印自己设计的字体
Python 二分查找
Python 线性查找
Python 插入排序
Python 快速排序
Python 选择排序
Python 冒泡排序
Python 归并排序
Python 堆排序
Python 计数排序
Python 希尔排序
Python 拓扑排序
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4