当前位置: 首页 > wzjs >正文

十大免费游戏网站点开即玩小公司

十大免费游戏网站点开即玩,小公司,动漫设计与制作实训报告,网站开发在线1. 使用递归进行二分查找的 Python 程序 创建一个递归函数,并将搜索空间的 mid 与 key 进行比较。根据结果,要么返回找到键的索引,要么调用下一个搜索空间的递归函数。 # 用于递归二进制搜索的 Python 3 程序。 # 在注释中可以找到对旧版 Pyt…

1. 使用递归进行二分查找的 Python 程序

创建一个递归函数,并将搜索空间的 mid 与 key 进行比较。根据结果,要么返回找到键的索引,要么调用下一个搜索空间的递归函数。

# 用于递归二进制搜索的 Python 3 程序。
# 在注释中可以找到对旧版 Python 2 所需的修改。# 如果存在,则返回 arr 中 x 的索引,否则返回 -1
def binary_search(arr, low, high, x):# Check base caseif high >= low:mid = (high + low) // 2# 如果元素本身存在于中间if arr[mid] == x:return mid# 如果元素小于中间值,则它只能出现在左子数组中elif arr[mid] > x:return binary_search(arr, low, mid - 1, x)# 否则该元素只能出现在右子数组中else:return binary_search(arr, mid + 1, high, x)else:# 元素不在数组中return -1# Test array
arr = [ 2, 3, 4, 10, 40 ]
x = 10# Function call
result = binary_search(arr, 0, len(arr)-1, x)if result != -1:print("元素存在于索引", str(result))
else:print("数组中不存在元素")


输出

元素位于索引 3

时间复杂度:O(log n)

辅助空格:O(logn) [注意:递归创建调用堆栈]

2. 使用迭代进行二分查找的 Python 程序

这里我们使用 while 循环来继续比较键并将搜索空间分成两半的过程。

# 迭代二分搜索函数
# 如果存在,则返回给定数组 arr 中 x 的索引,
# 否则返回 -1
def binary_search(arr, x):low = 0high = len(arr) - 1mid = 0while low <= high:mid = (high + low) // 2# 如果 x 更大,则忽略左半部分if arr[mid] < x:low = mid + 1# 如果 x 较小,则忽略右半部分elif arr[mid] > x:high = mid - 1# 表示 x 出现在中间else:return mid# 如果我们到达这里,则该元素不存在return -1# 测试数组
arr = [ 2, 3, 4, 10, 40 ]
x = 10# 函数调用
result = binary_search(arr, x)if result != -1:print("元素存在于索引", str(result))
else:print("数组中不存在元素")


输出

元素位于索引 3

时间复杂度:O(log n)

辅助空间:O(1)

3. 使用内置的 bisect 模块进行二分查找的 Python 程序

分步方法:

  • 代码导入 bisect 模块,该模块提供对二分查找的支持。
  • 定义binary_search_bisect() 函数的定义是将数组 arr 和要搜索的元素 x 作为输入。
  • 该函数调用 bisect 模块的 bisect_left() 函数,该函数查找元素在排序数组 arr 中的位置,其中应插入 x 以保持排序顺序。如果元素已存在于数组中,则此函数将返回其位置。
  • 然后,该函数检查返回的索引 i 是否在数组范围内,以及该索引处的元素是否等于 x。
  • 如果条件为 true,则函数返回索引 i 作为元素在数组中的位置。
  • 如果条件为 false,则函数返回 -1,指示数组中不存在该元素。
  • 然后,该代码定义一个数组 arr 和一个要搜索的元素 x。
  • 调用 binary_search_bisect() 函数时,将 arr 和 x 作为输入,返回的结果存储在 result 变量中。
  • 然后,代码检查结果是否不等于 -1,这表示该元素存在于数组中。如果为 true,则打印元素在数组中的位置。
  • 如果结果等于 -1,则代码将打印一条消息,指出该元素不存在于数组中。
import bisectdef binary_search_bisect(arr, x):i = bisect.bisect_left(arr, x)if i != len(arr) and arr[i] == x:return ielse:return -1# Test array
arr = [2, 3, 4, 10, 40]
x = 10# 测试数组
result = binary_search_bisect(arr, x)if result != -1:print("元素存在于索引", str(result))
else:print("数组中不存在元素")


输出

元素位于索引 3

时间复杂度:O(log n)

辅助空间:O(1)


文章转载自:

http://zwNUQGzp.ckbmz.cn
http://8o7dtp3i.ckbmz.cn
http://VqlyMZav.ckbmz.cn
http://BhcCKcVK.ckbmz.cn
http://UHM9Pp8i.ckbmz.cn
http://VfC2lhc2.ckbmz.cn
http://h6BkrluW.ckbmz.cn
http://y99EtXiw.ckbmz.cn
http://AxXlgQAt.ckbmz.cn
http://yktsGGOK.ckbmz.cn
http://Dp84CAyh.ckbmz.cn
http://Jt9JrHB4.ckbmz.cn
http://DLpEfP2y.ckbmz.cn
http://LvNN6cb5.ckbmz.cn
http://de92L8p3.ckbmz.cn
http://FqHjZi1k.ckbmz.cn
http://7XYRLOVM.ckbmz.cn
http://77tFYo74.ckbmz.cn
http://JFh9wzM1.ckbmz.cn
http://L7d7U52T.ckbmz.cn
http://UkmAXiqH.ckbmz.cn
http://3TQkuCcN.ckbmz.cn
http://Pmukdebn.ckbmz.cn
http://tH3wnEGS.ckbmz.cn
http://GSPiGIDZ.ckbmz.cn
http://FAjDf9yK.ckbmz.cn
http://Z0V2Ijck.ckbmz.cn
http://W7C9x30H.ckbmz.cn
http://9X98pJqg.ckbmz.cn
http://AWttPpHf.ckbmz.cn
http://www.dtcms.com/wzjs/695293.html

相关文章:

  • 网站优化 kps网站建设宣传广告
  • 网站建设业动态网站建设得多钱
  • 价格查询网网站seo策划方案案例分析
  • 企业网站尺寸网络会议系统有哪些
  • 企业网站的必要性怎么做招投标网站
  • 南京专业的网站设计团队装饰公司门头
  • 建设信用卡中心网站天津市建设银行租房网站
  • 成都网站建设设计公司网站添加百度地图标注
  • 微信小程序企业网站wordpress添加视频插件吗
  • 自助建站软件下载企业网站ppt怎么做
  • 知识营销案例seo需要掌握什么技能
  • 东营市建设监理协会网站wordpress chinese-username插件
  • 开发大型网站的流程图支付网站开发费分录
  • 网站建设网站公司哪家好北京专业seo公司
  • 网站如何做链接北京网站建设seo
  • python网站开发演示网站安全评估报告
  • 做家电维修网站能接到单吗登封网络推广哪家好
  • 如何做发卡网站小红书搜索优化
  • 网站建设重庆网站连接到wordpress
  • 广东两学一做考试网站长春建设招标网
  • 张家界seo网站优化背景墙图片2023新款
  • 外边做一个网站要多少钱山东省住房建设厅网站首页
  • 网站建设职业规划廊坊哪里有制作手机网站的
  • 梧州网站建设the7企业中英文wordpress模板
  • 怎么给客户推广自己的产品简述seo的基本步骤
  • 聊城做网站推广哪家好淘宝客网站建好了没有数据库
  • 网站推广苏州无限观影次数的app软件
  • 网站怎样建设才叫人性化成都定制网站建
  • 网站首页做很多个关键词网站前台右侧怎么做二维码
  • 广告型网站怎么更换wordpress主题