好了 , 到这里代码基本分析完了 。如果还有不清楚的地方欢迎下方留言 。
除了这种算法外,我也写一种贪心算法来求解这道题,只可惜最坏的情况下算法复杂度还是O(n^2),QAQ 。
大体的思路就是从中间位置起找相邻4个点中最大的点,继续把该点来找相邻最大点,最后一定会找到一个峰值点 , 有兴趣的可以看一下,上代码:
#!/usr/bin/python3
def dp(n):
temp = (str[n],str[n-9],str[n-1],str[n+1],str[n+9])#中 上 左 右 下
sit = temp.index(max(temp))
if(sit==0):
return str[n]
elif(sit==1):
return dp(n-9)
elif(sit==2):
return dp(n-1)
elif(sit==3):
return dp(n+1)
else:
return dp(n+9)
f = open("/home/nancy/桌面/demo.txt","r")
list = f.read()
list = list.replace(" ","").split()#转换为列表
row = len(list)
col = len(list[0])
str="0"*(col+3)
for x in list:#加围墙 二维变一维
str+=x+"00"
str+="0"*(col+1)
mid = int(len(str)/2)
print(str,mid)
p = dp(mid)
print (p)
f.close()
以上这篇python分治法求二维数组局部峰值方法就是小编分享给大家的全部内容了,希望能给大家一个参考
python 寻找曲线的峰值 谷值a = [x,x,x,x,x,x,x]
h = []
l = []
for i in range(1, len(a)-1):
if(a[i-1]a[i] and a[i+1]a[i]):
h.append(a[i])
elif(a[i-1]a[i] and a[i+1]a[i]):
l.append(a[i])
if(len(h) == 0):
h.append(max(a))
if(len(l) == 0):
l.append(min(a[a.index(max(a)):]))
print h
print l
python函数峰值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python数值函数、python函数峰值的信息别忘了在本站进行查找喔 。
推荐阅读
- 荣耀60p刷鸿蒙成功,荣耀六plus升级鸿蒙
- c语言字符类型判读,c语言判断字符类型代码
- 网站开发毕业设计ppt,网站开发毕业设计选题
- 医生如何引流到线下的,医院怎么引流
- linux命令查找字符串 linux查找字符串中指定字符的位置
- 路由器怎么处理网络数据,路由器处理网络数据到第几层
- vR阿里云服务器,阿里云vr直播
- 直播素材模糊,视频直播模糊
- c语言选择语句写函数例子 c语言选择函数怎么使用