0
点赞
收藏
分享

微信扫一扫

python中二分法查找有序列表中的值

yellowone 2022-05-01 阅读 54
python算法

问题描述

在列表ls = [1, 3, 5, 7, 9, 11,13]中利用二分法查找数字5所在的下标
代码如下:
# encoding = 'utf-8'
# 利用二分法查找有序数组中的某一个值

def findNum(left, right, ls, num):
    '''
    :param num: 被查找的数字
    :param ls: 列表
    :return: num所在的位置
    '''
    mid = (left + right)//2
    if ls[mid] == num:
        return mid
    else:
        if num > ls[mid]:
            left = mid
        if num < ls[mid]:
            right = mid
        return findNum(left, right, ls, num)

ls = [1, 3, 5, 7, 9, 11, 13]
num = 5
index = findNum(0, len(ls), ls, num)
print(index)

运行结果:2
举报

相关推荐

0 条评论