#寻找局部最小值--找极小值 #looking_for_local_min(counter_dict, line[0], 0) # counter_dict-----{1: 0, 2: 0, 3: 0,,, : 0} 其中:line[0] = p=key def looking_for_local_min(count_list, line, direction): """ :param count_list: 被遍历搜索的局部数据 :param line: 局部最高值 :param direction: 方向 0:向上 1:向下 :return: 搜索到的局部最小值 例如:局部 [1238444255] 8为局部最高值,那么方向为0时候返回1 方向为1时候返回2 """ current = count_list[line] if(direction == 0): #如果从0开始向上搜索,终止并输出 if(line<=min(count_list.keys())): return current #向上搜索,如果可以找到更小的->迭代搜索 upper_value = count_list[line-1] while upper_value <= current: return looking_for_local_min(count_list, line-1, direction) #终止状态 return current elif(direction == 1): #如果从0开始向上搜索,终止并输出 if(line>=max(count_list.keys())): return current #向下搜索,如果可以找到更小的->迭代搜索 lower_value = count_list[line+1] while lower_value <= current: return looking_for_local_min(count_list,line+1,direction) #终止状态 return current