算法知识点记录
二分法
- 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
- 时间复杂度O(h)=O(log2n)
-
def func(l,aim): mid = (len(l)-1)//2 if l: if aim > l[mid]: func(l[mid+1:],aim) elif aim < l[mid]: func(l[:mid],aim) elif aim == l[mid]: print("bingo",mid) else: print('找不到')
-
1234567891011121314
def
bin_search(data_list, val):
low
=
0
# 最小数下标
high
=
len
(data_list)
-
1
# 最大数下标
while
low <
=
high:
mid
=
(low
+
high)
/
/
2
# 中间数下标
if
data_list[mid]
=
=
val:
# 如果中间数下标等于val, 返回
return
mid
elif
data_list[mid] > val:
# 如果val在中间数左边, 移动high下标
high
=
mid
-
1
else
:
# 如果val在中间数右边, 移动low下标
low
=
mid
+
1
return
# val不存在, 返回None
ret
=
bin_search(
list
(
range
(
1
,
10
)),
3
)
print
(ret)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!