本文实例讲述了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使用分治法实现求解最大值的方法相关推荐

  1. python有几种打开方式_Python中几个以“__”开头的方法介绍总结

    本文我们来看谈 Python 中的特殊方法 __dir__, __slots__, __weakref____missing__, __contains__ 的简单介绍总结. __dir__ -> ...

  2. python求等差数列第n项_python 等差数列末项计算方式

    等差数列末项计算 题目内容: 给出一个等差数列的前两项a1,a2,求第n项是多少 可以使用以下语句实现非负整数n的输入: n=int(input()) 输入格式: 三行,包含三个整数a1,a2,n 输 ...

  3. python求一组数中最大数_python如何求一组数的最大值?_后端开发

    php中session用法详解_后端开发 PHP中的session默认情况下是使用客户端的Cookie,当客户端的Cookie被禁用时,会自动通过[Query_String]来传递,其中[sessio ...

  4. python输入三个数输出最小值_python之输入一系列整数输出最大值

    在python学习中,我们经常会遇到:编写一个程序,输入若干整数或者是在一串字符中,输出最大值(数)的问题.那么在这里,我给出了几种常见的,也是几种比较常用的方法,希望能给大家的学习带来一定的帮助. ...

  5. python函数调用的三种方式_python函数调用的四种方式

    原标题:python函数调用的四种方式 第一种:参数按顺序从第一个参数往后排#标准调用 运行结果: 第二种:#关键字调用 注意:关键调用从哪开始的,从哪以后都必须使用关键字调用除了'*'收集参数.不能 ...

  6. python求10以内的素数_python如何求100以内的素数

    方法一,用for循环来实现 num=[]; i=2 for i in range(2,100): j=2 for j in range(2,i): if(i%j==0): break else: nu ...

  7. python 服务端主动发数据_python使用socket向客户端发送数据的方法

    Python Socket通讯例子详解 创新从模仿开始! python中内置的socket模块使得网络编程更加简单化,下面就通过两个小小脚本来了解客户端如何与服务器端建立socket. 客户端代码: ...

  8. python怎样遍历列表中数字_Python 遍历列表里面序号和值的方法(三种)

    三种遍历列表里面序号和值的方法: 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,特在情人节这一天写下了这篇博客,下面废话不多说,直接贴代码 #!/usr/bin/env pyth ...

  9. 求最大字段和问题(常规法,分治法,动态规划法)

    算法设计与分析-----求最大字段和问题 问题描述:给定由n个整数组成的序列(a1,a2,a3......,an),求该序列的子段的最大值. 常规法: 从a1开始,求出以a1开头的子序列最大的和为su ...

最新文章

  1. day02: SQL_DML, oracle中sql的各种查询
  2. 清华镜像源地址_PyCharm安装第三方库(内含添加国内镜像源方法)
  3. 3.20周记:栈和队列
  4. JVM内存模型知识点总结
  5. java知识点--基础篇(5)
  6. 3D数学读书笔记——矩阵进阶
  7. 关于安卓手机在微信浏览器中无法调起相机的原因
  8. BOM+DOM+JavaScript读取与操作网页对象
  9. 微软ODBC服务器驱动,Windows ODBC 驱动程序中的连接弹性
  10. IE6不兼容 CSS 改CSS没效果 原因
  11. 动态规划——洛谷1020_导弹拦截(1999年的)
  12. DbgView 无法开启Capture Kernel问题
  13. 手把手教你Mac重装系统不再难:苹果电脑重装系统教程
  14. Matlab实现小波变换
  15. shell命令三剑客之grep命令详解
  16. 数据可视化工具(QBarSeries柱状图)
  17. TensorFlow+Pytorch识别阿猫阿狗
  18. 【微信小程序】获取/设置屏幕亮度
  19. can 自动波特率 linux,CAN波特率的简单计算
  20. 夕阳明月映照“雪色”敦煌古阳关

热门文章

  1. 树——一种数据结构(二)
  2. abd.exe 需要下java吗_abd.exe
  3. 登录显示离线_使用emoji加密文本;nali—终端离线查询 IP 地理信息
  4. idea怎么提交到dev分支_idea中新建git分支,并提交到远程github
  5. ajax 自动提示信息,自动提示使用AJAX
  6. python从入门到精通 明日科技 电子书-【明日科技+python】百度云下载 - 云盘精灵...
  7. 从零开始学习python编程-从0开始的Python学习014面向对象编程(推荐)
  8. python课程开课吧怎么样-廖雪峰总结的Python商业爬虫教程,请查收!
  9. python 在线培训费用-参加线上python培训班要多少钱?
  10. 为什么都建议学java而不是python-学java好还是Python好?