当前位置: 首页 > news >正文

算法设计与分析复习总结(二)

算法设计与分析复习总结

  • 第二章 递归与分治策略
    • 分治法的适用条件
    • 分治算法的复杂性分析
    • 二分搜索技术
      • 例题
    • 大整数乘法
    • Strassen矩阵乘法
    • 棋盘覆盖
    • 合并排序和快速排序
    • 线性时间选择
    • 最接近点对问题
    • 循环赛日程表

第二章 递归与分治策略

分治法的适用条件

1.该问题的问题规模缩小到一定程度就可以轻松解决
2. 可以分解为若干个规模较小的相同问题,具有最优子结构性质,这条是使用分治法的前提最优子结构性质的含义是问题最优解包含子问题最优解。
3. 利用该问题分解出的子问题的解可以合并为该问题的解。能否利用分治法完全取决于问题是否具有这条特征,如果具备了前两条特征而不具备第三条特征,则可以考虑贪心算法或者动态规划
4. 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。这条特征涉及到分治法的效率,如果各子问题是不独立的,则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然也可用分治法,但一般用动态规划较好。

分治算法的复杂性分析

在这里插入图片描述注意:递归方程及其解只给出n等于m的方幂时T(n)的值,但是如果认为T(n)足够平滑,那么由n等于m的方幂时T(n)的值可以估计T(n)的增长速度。通常假定T(n)是单调上升的,从而当 m i ≤ n < m i + 1 m^i≤n<m^{i+1} min<mi+1时, T ( m i ) ≤ T ( n ) < T ( m i + 1 ) T(m^i)≤T(n)<T(m^{i+1}) T(mi)T(n)<T(mi+1)

二分搜索技术

例题

用二分查找算法实现:判断 m × n m ×n m×n矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。如图所示:
在这里插入图片描述

#include<vector>
using namespace std;
clssic Solution{
public:bool searchMatrix(vector<vector<int>>& matrix, int target){if(matrix.empty() || matrix[0].empty()){return false;}int m=matrix.size(), n=matrix[0].size();int left=0,right=m*n-1;int mid=(right-left)/2;int row=mid/n, col=mid%n;if(matrix[row][col]==target){return true;}else if(matrix[row][col]>target){right=mid-1;}else{left=mid+1;}return false;		
}
};

大整数乘法

Strassen矩阵乘法

棋盘覆盖

合并排序和快速排序

线性时间选择

最接近点对问题

循环赛日程表

http://www.xdnf.cn/news/849601.html

相关文章:

  • English 900 英语九百句
  • 如何高效开发一个OA办公系统?
  • JavaWeb-QQ空间项目解析
  • Windows系统VisualSVN-Server下载安装和配置
  • IEEE access投稿及注意事项(初稿,回复审稿人,终稿)
  • 【保姆级图文教程】VirtualBox安装Ubuntu系统虚拟机以及一些基础的VirtualBox操作,图文详细,看完必会
  • Beyond Compare 3 许可证密钥被撤销
  • 小说站源码(带自动采集开源小说网站源码)
  • 启动应用程序出现d3dx9_41.dll缺少问题解决
  • 号外:2012年三星手机在中国销量翻3倍,位列中国智能手机排行首位,诺基亚跌至第7位
  • android 游戏数据在哪里下载地址,安卓游戏数据包放哪 小编教你怎么用
  • java中applet小程序的数字签名
  • 记录最坑的一天VS2017 安装QT插件失败
  • 接口测试的几种方法
  • CIDR详解
  • strncpy的具体用法
  • 一起看看ARP表项中的Incomplete?
  • matlab中scalar意思,scalar是什么意思_scalar的翻译_音标_读音_用法_例句_爱词霸在线词典...
  • 数据库之NoSQL简介
  • 什么是Referer?Referer的作用?空Referer是怎么回事?
  • oracle中的nvl函数讲解
  • LIN总线详解
  • linux 定时任务
  • [转]TFTP协议详解
  • 2024年运维最新超详细:安装Linux系统教程_linux系统安装,从三流Linux运维外包到秒杀阿里P7
  • PWA介绍及快速上手搭建一个PWA应用
  • java中同类对象之间的compareTo()和compare()方法的比较
  • K3S部署和使用
  • 环境变量
  • 15个PPT模板免费下载网站