【Python 训练营】N_16 二分法查找

简介: 【Python 训练营】N_16 二分法查找

题目

定义函数,使用二分法查找列表[1,2,3,4,5,6,7,8,9,10]中5的位置,未找到返回False。

分析

二分法查找就是通过不断对半的方法查找区间[a,b]内的数值位置

答案

def binarySearch(L,t):
    x=0
    low, high = 0, len(L) - 1
    while low < high:
        mid =int( (low + high)/2 )
        if L[mid] > t:
            high = mid
        elif L[mid] < t:
            low = mid +1
        else:
            return mid

    return mid if L[mid-1] == t else False
l = [1,2,3,4,5,6,7,8,9,10]
print( binarySearch(l, 5) )
相关文章
|
4月前
|
SQL Python
基于 sqli-labs-Pass08,利用Python 实现 SQL盲注(含二分法)
基于 sqli-labs-Pass08,利用Python 实现 SQL盲注(含二分法)
|
3月前
|
Python
【Python 训练营】N_17 冒泡排序
【Python 训练营】N_17 冒泡排序
25 2
|
3月前
|
Python
【Python 训练营】N_14 文件查找和替换
【Python 训练营】N_14 文件查找和替换
26 2
|
3月前
|
Python
【Python 训练营】N_13 遍历字符串
【Python 训练营】N_13 遍历字符串
36 2
|
3月前
|
Python
【Python 训练营】N_5 斐波那契数列
【Python 训练营】N_5 斐波那契数列
26 2
|
3月前
|
Python
【Python 训练营】N_15 列表元素去重
【Python 训练营】N_15 列表元素去重
31 1
|
3月前
|
Python
【Python 训练营】N_12 打印菱形图案
【Python 训练营】N_12 打印菱形图案
30 1
|
3月前
|
Python
【Python 训练营】N_11 模拟进度条
【Python 训练营】N_11 模拟进度条
18 1
|
3月前
|
Python
【Python 训练营】N_7 打印水仙花数
【Python 训练营】N_7 打印水仙花数
25 1
|
3月前
|
Python
【Python 训练营】N_18 插入排序
【Python 训练营】N_18 插入排序
23 0