发布时间:2024-06-22 14:01
Python 每日一题:锻炼Python语法的运用,思维逻辑的锻炼,算法能力的培养。
使用Python实现二分法查找逻辑,存着返回查找元素的索引值,不存在则返回-1。
二分法查找:也称折半法,是一种在有序列表中查找出特定元素的搜索算法。
二分法查找规则:
(1)先从数组的中间元素位置开始搜索,如果该元素正好是目标元素,则查找结束,否则执行下一步。
(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域位置查找,然后重复步骤(1)的操作。
(3)如果某一步数组为空,则表示找不到目标元素。
def search_insert_index(list_number, target):
\'\'\'
使用二分查找的算法
:param list_number: list,需查找的有序列表
:param target: num,查找的目标元素
:return: int,存在则返回对应的元素的索引值,如果不存在则返回-1
\'\'\'
left = 0 # 左侧索引值位置
right = len(list_number) - 1 # 右侧索引值位置
while left <= right:
mid = (left + right) // 2
if list_number[mid] == target:
return mid
elif list_number[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
L = [1, 3, 5, 7, 9, 13]
print(search_insert_index(L, 9))
print(search_insert_index(L, 1))
print(search_insert_index(L, 6))
4
0
-1
【结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!!
这Python100道练习题及答案送给你,学完直接上手做项目
java 常用 APL(系统相关类 ,Object类 和包装类详解)
【MySQL 源码】UNION 比 UNION ALL 的性能差很多吗?
java.lang.NoClassDefFoundError: kotlin/reflect/jvm/internal/KotlinReflectionInternalError
R语言使用levels()函数来查看factor因子变量水平级别(levels)
【SpringBoot深入浅出系列】SpringBoot之集成MyBatis-Plus