# 基本子算法(子问题规模小于等于 2 时)
def get_max(max_list):return max(max_list) def get_min(min_list):return min(min_list)# 分治法 最小元素
def solve(init_list):n = len(init_list)if n <= 2: # 若问题规模小于等于 2,最终解决return get_min(init_list)# 分解(子问题规模为 2,最后一个可能为 1)temp_list=(init_list[i:i+2] for i in range(0, n, 2))# 分治,合并min_list = list(map(get_min, temp_list))# 递归(树)return solve(min_list)# 分治法 最大元素
def solve2(init_list):n = len(init_list)if n <= 2: # 若问题规模小于等于 2,解决return get_max(init_list)# 分解(子问题规模为 n/2)left_list, right_list = init_list[:n//2], init_list[n//2:]# 递归(树),分治left_max, right_max = solve2(left_list), solve2(right_list)# 合并return get_max([left_max, right_max])if __name__ == "__main__":# 测试数据test_list = [13,4,11,5,67,7,9,43,24,2]# 求最小最大值print("最小元素:"+ str(solve(test_list)))  # 2print("最大元素:"+ str(solve2(test_list))) # 67

分治法——查找最大最小元素(Python)相关推荐

  1. Python算法——分治法查找数组中元素最小最大值

    要求: 给定数组a1,a2,a3,...an,找出数组中最大值和最小值.(数组中两两各不相同) 分析: 算法思想类似于上图,将数组两两分为一组,如果数组元素奇数个,就把最后一个元素单独分为一组,然后分 ...

  2. 算法设计——用分治法查找数组元素的最大值和最小值、用分治法实现合并排序、最小费用问题、树的最大连通分支问题(代码实现)

    代码链接:pan.baidu.com/s/15inIth8Vl89R1CgQ_wYc2g  提取码:gf13 算法分析与设计第 1 次实验 时间 2020.3.31 地点 软件大楼 127 实验名称 ...

  3. 分治法查找数组元素的最大值和最小值(python实现)

    实验内容 给定任意几组数据,利用分治法的思想,找出数组中的最大值和最小值并输出 实验原理 利用分治法,将一个数组元素大于 2 的数组分成两个子数组,然后对每一个子数组递归调用,直到最小的子数组的元素个 ...

  4. [python] 分治法查找数组元素的最大值和最小值

    分治法查找数组元素的最大值和最小值 分治法简介: 分治法从字面上的解释是"分而治之",就是把一个复杂的问题分成两个或者更多相同或者相似的子问题,再把子问题分成更小的子问题,直到最后 ...

  5. 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt

    分治法第k小元素poj2104 第六章 分 治 6.1 引言 分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之. 战略 算法设计技术 划分--治理- ...

  6. 分治法——查找问题 —— 寻找一个序列中第k小的元素和查找最大和次大元素

    查找问题: 问题一:寻找一个序列中第k小的元素 对于给定的含有n个元素的无序序列,求这个序列中第k(1<=k<=n)小的元素 分析思路: 假设无序序列存放在a[0 - n-1]中,若将a递 ...

  7. 用分治法查找数组元素的最大值和最小值

    算法分析: 代码实现: #include "stdio.h" #include "stdlib.h" #include "time.h" # ...

  8. 分治法 ——查找问题 —— 寻找两个等长有序序列的中位数

    查找问题: 问题一:寻找两个等长有序序列的中位数 问题描述:对于一个长度为n的有序序列(假设均为升序序列)a[0 - n-1] ,处于中间位置的元素称为a的中位数. 例如,若序列a=(11,13,15 ...

  9. 【算法设计与分析】关于分治法的一些(伪)代码整理

    分治法 合并排序 利用分治法求一个元素在数组中的最大位置 利用分治法求一个n元素数组的最大元素和最小元素的值 是否稳定 快速排序 合并排序 利用分治法求一个元素在数组中的最大位置 伪代码: MaxIn ...

最新文章

  1. linux文件传输常用方法
  2. Leaflet中原生方式实现测距
  3. 【MFC】定义XP风格的工具栏
  4. NGINX-RTMP复杂度分析
  5. linux kill命令详解
  6. 当你女朋友第一次来你家会发生什么?
  7. linux awk 区别,awk中RS、ORS、FS、OFS的区别和联系小结
  8. springboot使用JdbcTemplate完成对数据库的增删改查
  9. 亚马逊中国官网挂了:因清仓大促销致官网崩溃,谁来背锅?
  10. ps4微软服务器地址,PSN服务更新 终于可以在PC上玩PS4游戏了!
  11. 往服务器复制文件提示拒绝访问,Win10系统复制文件提示目标文件夹被拒绝访问的解决方法...
  12. win7笔记本外接显示器html,笔记本连显示器的步骤_笔记本如何外接显示器-win7之家...
  13. 游戏中要遵守道德规范吗?谈《荒野大镖客2》道德体验设计的意义
  14. 值得推荐好用的网址导航网站大全
  15. Redis解决商品秒杀与超卖
  16. 世界三大顶级音响_世界音响三个顶尖品牌 世界顶级音响哪个品牌好
  17. 北航2018计算机学院录取名单,【北航2018年拟录取硕士研究生名单公示】- 环球网校...
  18. DPP Substrate 1中英文说明书
  19. 【matlab矩阵运算】01、把矩阵展开成向量
  20. idea 打包报错 Could not find artifact com.ruoyi:ruoyi-framework:pom:4.6.1 in public (http://maven.aliyun

热门文章

  1. java自定义高效map转json逻辑实现
  2. 深度学习之SSD总结
  3. 今天我是F了 虽然我是个老爷们,但这样的老娘们太牛了...这生活,她难道是学金融管理的么/.疯了
  4. 常用adb命令的使用
  5. 计算机组成原理(谭志虎主编 )
  6. java ikvm viewer,通过IPMI KVM安装操作系统
  7. RIP原理、毒性反转原理与应用【eNSP实现】
  8. C++中const的作用(至少要说出3个)
  9. java 日历备忘录_Java日历及备忘录
  10. python数据可视化项目设计-中国人口