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

在这里插入图片描述

目录

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

  • 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.rhkb.cn/news/168338.html

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

相关文章

使用序列化技术保存数据 改进 IO流完成项目实战水果库存系统

上一节内容是 使用IO流完成项目实战水果库存系统https://blog.csdn.net/m0_65152767/article/details/133999972?spm1001.2014.3001.5501 package com.csdn.fruit.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java…

基于stm32控制的4G模块在设备模式下通讯

这里的32控制其实和51的控制思路都是一样的,都是先利用一个网络助手将家里的无线网生成局域网,接着通过花生壳软件将局域网变成公共网,最后是利用串口助手,在4G模块的AT指令模式写入命令ATSOCKTCPC,公共网IP地址,公共网端口号&…

Hadoop3教程(二十七):(生产调优篇)HDFS读写压测

文章目录 (146)HDFS压测环境准备(147)HDFS读写压测写压测读压测 参考文献 (146)HDFS压测环境准备 对开发人员来讲,压测这个技能很重要。 假设你刚搭建好一个集群,就可以直接投入生…

跨境商城源码可以支持多种用户权限管理方式吗?

在跨境电商领域,为了满足消费者的需求和提供更好的购物体验,开发人员需要使用一种可靠的跨境商城源码来构建跨境电商平台。然而,这个商城源码是否可以支持多种用户权限管理方式呢?本文将探讨这个问题。 1.什么是跨境商城源码? 跨境商城源码…

linux进程管理,一个进程的一生(喂饭级教学)

这篇文章谈谈linux中的进程管理。 一周爆肝,创作不易,望支持! 希望对大家有所帮助!记得收藏! 要理解进程管理,重要的是周边问题,一定要知其然,知其所以然。看下方目录就知道都是干货…

【单片机学习笔记】Windows+Vscode+STM32F4+freeRTOS+FatFs gcc环境搭建

为摒弃在接受keil邮件,研究了下gun编译,以STM32F407为例,简单记录 1. 软件包准备 Git 选择对应版本直接安装即可https://git-scm.com/download/winmakegcc ​ 1)将上述软件包放置于C盘根目录 2)添加环境变量 3&am…

【Git】idea提交项目到Gitee

文章目录 1. 创建Gitee仓库1. 新建仓库2. 添加描述3. 复制仓库地址 2. idea建立连接提交2.1 Create Git Repository2.2 选择要提交的根目录2.3 Commit2.4 Push2.5 提交成功 1. 创建Gitee仓库 1. 新建仓库 2. 添加描述 3. 复制仓库地址 点击右上角克隆/下载,复制HT…

pv操作题目笔记

对于 pv 操作分以下几步走 什么是pv操作 PV操作在进程同步中通常指的是信号量(Semaphore)操作。信号量是一种用于控制多个并发进程或线程之间的同步和互斥访问的同步工具。PV操作通常涉及两个基本操作:P操作(wait操作&#xff0…

MD5生成和校验

MD5生成和校验 2021年8月19日席锦 任何类型的一个文件,它都只有一个MD5值,并且如果这个文件被修改过或者篡改过,它的MD5值也将改变。因此,我们会对比文件的MD5值,来校验文件是否是有被恶意篡改过。 什么是MD5&#xff…

微信小程序实现类似于 vue中ref管理调用子组件函数的方式

微信小程序中确实有类似于 vue 中 ref管理子组件的方式、 这里 我给子组件定义了一个 class 只要是 css选择器拿得到的 都没什么问题 但你要保证唯一性 建议前端开发还是慎重一点 就算是不能重复也尽量用class 因为id总还是有风险的 然后 我在子组件中顶一个了一个函数 start…

计网----数据包在传输中的变化过程,单播组播和广播,ARP协议,ARP代理,免费ARP,DNS协议,路由数据转发过程

计网----数据包在传输中的变化过程,单播组播和广播,ARP协议,ARP代理,免费ARP,DNS协议,路由数据转发过程 一.数据包在传输中的变化过程(在同一个路由器下) 1.传输数据时&#xff0c…

RPA的尽头是超自动化?

超自动化在经过数年的发酵期后,已从一个科技概念崛起为市值近千亿元的新赛道,包括各大互联网巨头、科技公司都纷纷围绕超自动化进行战略布局。 一方面,是行业巨头选择纷纷跻身超自动化新赛道,另一方面,RPA行业的领军企…

Proteus仿真--VB上位机程序控制DS1302时钟仿真(Proteus仿真+程序)

本文主要介绍基于51单片机的VB上位机程序控制DS1302时钟仿真设计(完整仿真源文件及代码见文末链接) 简介 硬件电路主要分为单片机主控模块、DS1302模块、LCD1602液晶显示模块以及串口模块 (1)单片机主控模块:单片机选…

Git最佳实践:git常用命令和原理

Git 是一个开源的分布式版本控制系统。 Git 工作区、暂存区和版本库 工作区:就是你在电脑里能看到的目录。暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时…

Leetcode—104.二叉树的最大深度【简单】

2023每日刷题(六) Leetcode—104.二叉树的最大深度 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/int maxDepth(struct TreeNode* root){…

热点不热!如何修复笔记本电脑未连接到移动热点的问题

当你远离常规Wi-Fi时,移动热点是让你的笔记本电脑上网的关键,但当它没有按计划运行时,你会怎么办?以下是Windows笔记本电脑无法连接到移动热点时的几种修复方法。 为什么我的笔记本电脑没有连接到我的热点 由于你的笔记本电脑正试图连接到另一个有限制和可能存在问题的设…

PHP yield

概念: Generator:带 yield的function yield:Generator或task的中断关键字,执行到yield时一次调度周期执行完即阻塞,并返回右侧表达式结果,等待下一次调度器运行next()或迭代遍历才会继续往下执行&#xff0…

2023-10-23 LeetCode每日一题(老人的数目)

2023-10-23每日一题 一、题目编号 2678. 老人的数目二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下: 前十…

rust学习——泛型 (Generics)

文章目录 泛型 Generics泛型详解结构体中使用泛型枚举中使用泛型方法中使用泛型为具体的泛型类型实现方法 const 泛型(Rust 1.51 版本引入的重要特性)const 泛型表达式 泛型的性能 泛型 Generics Go 语言在 2022 年,就要正式引入泛型&#xf…

mysql下载和安装,使用

先下载安装 官方下载 已下载备份软件 安装,一路下一步设置环境变量 4. 打开一个cmd,输入mysql -u root -p