编写程序分析数据,找出所有波峰,按波峰长度降序排序(若波峰长度相同,则按开始下标升序),并输出波峰长度和开始到结束元素下标;若不存在,则输出“不存在波峰”,运行结果如图所示。
请回答下列问题:
#读取待处理数据,保存在数组 d 中,并显示输出,代码略
mt,i,n=[],1,len(d)
while i<n:
while i<n and d[i]<=d[i-1]: #A
i+=1
st=i-1
while i<n and d[i]>d[i-1]:
i+=1
if:
continue #跳出本轮循环,然后继续进行下一轮循环
while i<n and d[i]<d[i-1]:
i+=1
ln=i-st
if len(mt)==0:
mt.append([ln,st,-1]) #为 mt 追加一个列表元素
head=0;q=head
else:
while p!=-1 and :
q=p
p=mt[p][2]
if p==head:
mt.append([ln,st,head])
head=len(mt)-1
else:
mt.append([ln,st,p])
if len(mt)==0:
print("不存在波峰")
else:
print("输出结果(长度:开始下标~结束下标):")
p=head
while p!=-1:
print(mt[p][0],":",mt[p][1]," ~",mt[p][0]+mt[p][1]-1)
p=mt[p][2]
p=mt[q][2]
else:
p=head
B. if mt[q][0]<ln:p =mt[q][2]
else:
p=head