• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python使用分治法实现求解最大值的方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python求最大值,python 最大值,python list 最大值,python 数组最大值,python 一行的最大值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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)
</div>

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

</div>

您可能想查找下面的文章:

  • Python中用max()方法求最大值的介绍
  • python使用分治法实现求解最大值的方法

相关文章

  • 用Python抢过年的火车票附源码
  • python操作数据库之sqlite3打开数据库、删除、修改示例
  • Python实现监控程序执行时间并将其写入日志的方法
  • Python常用正则表达式符号浅析
  • 利用Python破解验证码实例详解
  • python实现马耳可夫链算法实例分析
  • Python程序中设置HTTP代理
  • Pycharm学习教程(4) Python解释器的相关配置
  • Python发送Email方法实例
  • 举例讲解Python中is和id的用法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
    • python判断图片宽度和高度后删除图片的方法
    • Python3.2模拟实现webqq登录
    • python实现bitmap数据结构详解
    • Python实现扫描局域网活动ip(扫描在线电脑)
    • python修改字典内key对应值的方法
    • Python实现二叉搜索树
    • 使用PYTHON创建XML文档
    • Python抽象类的新写法
    • python 算法 排序实现快速排序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有