分享

Python算法之二分法01

 excel05 2022-06-20 发布于福建
文章图片1

问题:使用二分法的方式在列表中寻找指定的数据

代码:

''' 使用二分法在有序列表中找出指定的值'''def BinarySearch(arr, key): # 记录数组的最高位和最低位 min = 0 max = len(arr) - 1 if key in arr: # 建立一个死循环,知道找到key while True: # 得到中位数 center = int((min + max) / 2) # key在数组左边 if arr[center] > key: max = center - 1 # key在数组右边 elif arr[center] < key: min=center+1 #key在数组中间 elif arr[center]==key: print(str(key) + '在数组里面的第' + str(center) + '个位置') return arr[center] else: print('没有该数字!')if __name__ == '__main__': arr = [1, 6, 9, 15, 26, 38, 49, 57, 63, 77, 81, 93] while True: key = input('请输入你要查找的数字:') if key == ' ': print('谢谢使用!') break else: BinarySearch(arr, int(key))

运行结果:

请输入你要查找的数字:6363在数组里面的第8个位置

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多