python使用分治法实现求解最大值的方法


Posted in Python onMay 12, 2015

本文实例讲述了python使用分治法实现求解最大值的方法。分享给大家供大家参考。具体分析如下:

题目:

给定一个顺序表,编写一个求出其最大值和最小值的分治算法。

分析:

由于顺序表的结构没有给出,作为演示分治法这里从简顺序表取一整形数组数组大小由用户定义,数据随机生成。我们知道如果数组大小为 1 则可以直接给出结果,如果大小为 2则一次比较即可得出结果,于是我们找到求解该问题的子问题即: 数组大小 <= 2。到此我们就可以进行分治运算了,只要求解的问题数组长度比 2 大就继续分治,否则求解子问题的解并更新全局解以下是代码。

题目看懂了就好说了,关键是要把顺序表分解成为k个元素为2的列表,然后找列表的最大值,然后把子问题的列表进行合并,再递归求解。

上代码吧:

#-*- coding:utf-8 -*-
#分治法求解最大值问题
import random
#求解两个元素的列表的最大值方法
def max_value(max_list):
  return max(max_list)
#定义求解的递归方法
def solve(init_list):
  if len(init_list) <= 2:
  #若列表元素个数小于等于2,则输出结果
    print max_value(init_list)
  else:
    init_list=[init_list[i:i+2] for i in range(0,len(init_list),2)]
    #将列表分解为列表长度除以2个列表
    max_init_list = []
    #用于合并求最大值的列表
    for _list in init_list:
    #将各各个子问题的求解列表合并
      max_init_list.append(max_value(_list))
    solve(max_init_list)
if __name__ == "__main__":
  test_list = [12,2,23,45,67,3,2,4,45,63,24,23]
  #测试列表
  solve(test_list)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python中常用检测字符串相关函数汇总
Apr 15 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
利用Python获取操作系统信息实例
Sep 02 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
Python tkinter三种布局实例详解
Jan 06 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
python引入其他文件夹下的py文件具体方法
May 23 Python
python超简单解决约瑟夫环问题
May 12 #Python
python实现复制整个目录的方法
May 12 #Python
Python导出数据到Excel可读取的CSV文件的方法
May 12 #Python
python通过openpyxl生成Excel文件的方法
May 12 #Python
python比较2个xml内容的方法
May 11 #Python
Python二分法搜索算法实例分析
May 11 #Python
python处理图片之PIL模块简单使用方法
May 11 #Python
You might like
php 检查电子邮件函数(自写)
2014/01/16 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
js注册时输入合法性验证方法
2017/10/21 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
python线程池的实现实例
2013/11/18 Python
编写Python的web框架中的Model的教程
2015/04/29 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python 读入多行数据的实例
2018/04/19 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
python实现dijkstra最短路由算法
2019/01/17 Python
如何写python的配置文件
2020/06/07 Python
如何清空python的变量
2020/07/05 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
酒店管理专业学生求职信
2013/09/27 职场文书
哈理工毕业生的求职信
2013/12/22 职场文书
聚美优品广告词改编
2014/03/14 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
特教教师先进事迹
2014/05/21 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP