分治法,动态规划法,贪心法,回溯法主要概括

在这里插入图片描述

目录

分治法,动态规划法,贪心法,回溯法主要概括

  • 1.前言
  • 2.分治法
    • 2.1基本思想:
    • 2.2适用条件:
    • 2.3时间复杂度:
    • 2.4主要解决:
    • 2.5关键字:
    • 2.6其他:
  • 3.动态规划法
    • 3.1基本思想:
    • 3.2适用条件:
    • 3.3时间复杂度:
    • 3.4主要解决:
    • 3.5关键字:
  • 4.贪心法
    • 4.1基本思想:
    • 4.2时间复杂度:
    • 4.3主要解决:
    • 4.4时间复杂度:
    • 4.5关键字:
  • 5.回溯法
    • 5.1基本思想:
    • 5.2时间复杂度:
    • 5.3主要解决:
    • 5.4其他:
  • 总结
  • 参考


1.前言

分治法,动态规划法,贪心法,回溯法主要概括

2.分治法

2.1基本思想:

讲一个复杂问题分解为若干规模较小且结构与原问题相似的子问题,然后递归解决这些子问题,最后将子问题的解合并得到原问题的解。

2.2适用条件:

1.问题可以被划分为相互独立且同质的子问题。
2.子问题的解可以合并为原问题的解。
3.子问题的规模足够小,可以直接求解。

2.3时间复杂度:

通常为O(nlogn)

2.4主要解决:

求解最优子结构
最大子数组和问题

2.5关键字:

分解子问题,递归解决,分币

2.6其他:

归并排序和快速排序都是使用分治法的经典算法。

3.动态规划法

3.1基本思想:

将原问题分解为若干重叠子问题,通过求解子问题的最优解得到原问题的最优解。使用一个表格来存储子问题的最优解,避免重复计算

3.2适用条件:

原问题可被分解为重叠的子问题

3.3时间复杂度:

不一定看具体算代码 通常为O(n^2)或
O(n^3)

3.4主要解决:

背包,0-1,公共子序列

3.5关键字:

全局最优解

4.贪心法

4.1基本思想:

每一步都选择当前看起来的最优解,不考虑未来,通过一系列的局部最优解,希望得到全局最优解。

4.2时间复杂度:

通常为O(n)

4.3主要解决:

霍夫曼编码、最小生成树(如Prim算法和Kruskal算法),背包问题,任务调度

这里是引用

4.4时间复杂度:

通常为O(n),因为贪心算法只需一次遍历即可得到解

4.5关键字:

局部最优解

5.回溯法

5.1基本思想:

通过逐步构建解的集合,当发现当前候选解不能满足问题的约束条件时,回溯到上一步进行其他选择,直到找到满足问题的解或者遍历完所有可能的选择

5.2时间复杂度:

取决于问题的规模和解的数量,通常为指数级别的复杂度。

5.3主要解决:

N皇后,迷宫问题

5.4其他:

回溯算法是一种通过穷举所有可能的解并逐步构建答案的方法。

总结

参考

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/145588.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)

目录 一、RequestMapping 路由映射 二、参数传递 1、传递单个参数 2、传递多个参数 3、传递对象 4、后端参数重命名 一、RequestMapping 路由映射 指定请求访问的路径既可以修饰类,又可以修饰方法 RequestMapping支持Get、Post、Delete等多种请求方式 Re…

Qt第六十五章:自定义菜单栏的隐藏、弹出

目录 一、效果图 二、qtDesigner 三、ui文件如下: 四、代码 一、效果图 二、qtDesigner 原理是利用属性动画来控制QFrame的minimumWidth属性。 ①先拖出相应的控件 ②布局一下 ③填上一些样式 相关QSS background-color: rgb(238, 242, 255); border:2px sol…

LNMP架构部署Discuz论坛系统

文章目录 LNMP架构&部署Discuz论坛系统部署LNMP架构环境前期准备安装Nginx安装mariadb安装php配置nginx 部署Discuz论坛系统下载Discuz论坛系统代码包部署Discuz论坛系统配置虚拟主机安装Discuz论坛访问站点尝试注册一个账号 LNMP架构&部署Discuz论坛系统 部署LNMP架构…

【Linux】进程间通信——共享内存

目录 一、什么是共享内存 二、共享内存的原理 三、使用共享内存实现进程间通信 3.1 shmget接口 3.1.1 key形参详解 3.2 释放共享内存 3.2.1 ipcs指令 3.2.2 ipcrm指令 3.2.3 shmctl接口 3.3 关联共享内存 3.4 去关联共享内存 3.5 使用共享内存进行进程间通信实例 …

Leetcode 454 四数相加II(哈希表 + getOrDefault方法用于获取Map中指定键的值,如果键不存在,则返回一个默认值)

Leetcode 454 四数相加II&#xff08;哈希表&#xff09; 解法1 HashMap getOrDefault方法 解法1 HashMap getOrDefault方法 【HashMap】 【⭐️HashMap常用操作】 创建HashMap&#xff1a;HashMap<Integer, Integer> hash new HashMap<>(); 向HashMap添加元素…

Deployments

Deployments 一个 Deployment 为 Pod 和 ReplicaSet 提供声明式的更新能力。 你负责描述 Deployment 中的目标状态&#xff0c;而 Deployment 控制器&#xff08;Controller&#xff09; 以受控速率更改实际状态&#xff0c; 使其变为期望状态。你可以定义 Deployment 以创建新…

OTA: Optimal Transport Assignment for Object Detection 论文和代码学习

OTA 原因步骤什么是最优传输策略标签分配的OT正标签分配负标签分配损失计算中心点距离保持稳定动态k的选取 整体流程代码使用 论文连接&#xff1a; 原因 1、全部按照一个策略如IOU来分配GT和Anchors不能得到全局最优&#xff0c;可能只能得到局部最优。 2、目前提出的ATSS和P…

找不到vcruntime140.dll,无法继续执行代码的详细解决方案

找不到vcruntime140.dll,无法继续执行代码&#xff1f;遇到这种问题&#xff0c;你知道要怎么去解决么&#xff1f;其实在我们开始讨论解决方案之前&#xff0c;需要首先了解什么是vcruntime140.dll文件。它是由Microsoft公司开发的一种DLL&#xff08;动态链接库&#xff09;文…

前端KOA搭建服务器——part1

目录 koa简介前端项目搭建koa环境第一步&#xff1a;新建项目第二步&#xff1a;环境初始化&#xff0c;安装依赖初始化项目&#xff0c;生成package.json文件安装koa依赖安装koa-router 路由管理依赖安装dotenv 环境变量依赖安装nodemon 热启动依赖 第三步&#xff1a;代码调用…

一分钟带你了解什么是0day攻击什么是Nday攻击

1. 什么是零日漏洞 零日攻击是指利用零日漏洞对系统或软件应用发动的网络攻击。 零日漏洞也称零时差漏洞&#xff0c;通常是指还没有补丁的安全漏洞。由于零日漏洞的严重级别通常较高&#xff0c;所以零日攻击往往也具有很大的破坏性。目前&#xff0c;任何安全产品或解决方案…

git log 命令详解

测试仓库 asdf 常用参数 查询指定目录 git -C /Users/yanlp/workspace/asdf log 限制显示提交数量 git log -n 3 限制提交人|邮箱 git log --authorEdwin Kofler | git log --authoredwinkofler.dev 限制一个月内的提交git log --since1.month.ago | git log --since2023-0…

博客后台模块续更(五)

十一、后台模块-菜单列表 菜单指的是权限菜单&#xff0c;也就是一堆权限字符串 1. 查询菜单 1.1 接口分析 需要展示菜单列表&#xff0c;不需要分页。可以针对菜单名进行模糊查询。也可以针对菜单的状态进行查询。菜单要按照父菜单id和orderNum进行排序 请求方式 请求路径…