二分查找也称折半查找(Binary Search),这种搜索算法每一次比较都使搜索范围缩小一半,是一种效率较高的查找方法。 是一种在有序数组中查找某一特定元素的查询算法。搜索过程从数组的中间元素开始,如果中间元素与要查找的元素相等,则搜索过程结束;如果查找元素大于或小于中间元素,则在数组大于或小于中间元素的那一半中进行查找,而且跟开始一样从中间元素开始比较。重复以上过程,直到找到满足条件的元素,使查找成功,或直到数组为空为止,此时查找不成功。 必须采用顺序存储结构,且按关键字大小进行有序排列。 运行结果:概念
要求
代码举例
#coding=utf-8 # 二分查找 (递归) # 返回 x 在 lists 中的索引,如果不存在返回None def binarySearch(lists, left, right, x): # 如果右边的值大于左边的值 if right >= left: # 取左右两个数的中间值 mid = (left + (right - left) // 2) # 若目标元素正好是中间位置,就返回mid,搜索过程结束 if lists[mid] == x: return mid # 元素小于中间位置的元素,比较左边的元素,且移动right下标 elif lists[mid] > x: return binarySearch(lists, left, mid - 1, x) # 元素大于中间位置的元素,比较右边的元素,移动left下标 else: return binarySearch(lists, mid + 1, right, x) else: # 不存在的目标元素的情况就返回None return # 测试举例数组 arr = [1, 2, 3, 4, 5] x = 6 # 函数调用 result = binarySearch(arr, 0, len(arr) - 1, x) if result != None: print("您输入的元素在数组中的索引为 %d" % result) else: print("您输入的元素不在数组中")
当x=3时;
运行结果
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算