7.2 算法设计与分析-分治法和回溯法

news2024/9/27 9:30:19

分治法

相对简单,考的概率比较低

分治法:对于一个规模为的问题,若该问题可以容易地解决则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解决这些子问题,然后将各子问题的解合并得到原问题的解。

步骤:分解(将原问题分解成一系列子问题求解(递归地求解各子问题,若子问题足够小,则直接求解)一合并(将子问题的解合并成原问题的解)。
凡是涉及到分组解决的都是分治法(二分查找、归并排序、求阶乘、斐波那契数列等)。

递归:指子程序(函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的常用方法。

递归两个基本要素:边界条件(确定递归何时终止,即递归出口)、递归模式(大问题如何分解成小问题即递归体)

示例:阶乘的定义
在这里插入图片描述
C语言实现:

int Factorial(int num){
	if(num == 0)
		return 1;
	if(num > 0)
		return num*Factorial(num-1);

如果num=5,f(5)= 5 * f(4) = 5 * (4 * f(3)) = 5 * 4 * (3 * f(2)) = 5 * 4 * 3 * (2 * f(1)) = 5 * 4 * 3 * 2 * (1 * f(0)) = 5 * 4 * 3 * 2 * 1 * 1

回溯法

考的概率比较低
回溯法(Backtracking)是一种选优的暴力搜寻法。但是,由于暴力,回溯法的时间复杂度较高,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”

一般用于解决迷宫类的问题。其思路不难理解,想象一下你在走一个迷宫,当在一个路口有A,B,C三条岔路的时候你要怎么办呢?大家可以很容易地想到先尝试道路A,如果走不通就回到这个路口尝试道路B,如果还走不通就尝试道路C,这就是一个典型地应用回溯法的例子。如果将目光着眼于整个迷宫就可以发现这个迷宫其实就是一颗多叉树,每个路口就是一个节点,每个路口的岔路就是这个节点的子树,在这颗多叉树上应用深度优先搜索就是回溯法。
8皇后:在8*8的棋盘格里放8个皇后的棋,要求每行每列每个对角线只能有一个皇后
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Proxmox Install 8

Proxmox 前言 Proxmox Virtual Environment(简称PVE)是一个开源的服务器虚拟化解决方案,它基于QEMU/KVM和LXC技术。Proxmox VE提供了一个易于使用的Web界面和命令行工具,允许用户轻松地创建和管理虚拟机(VMs)和容器。 Proxmox download Proxmox 官网下载Proxmox 百度网…

Midjourney入门-提示词基础撰写与公式

​ 前言 在前几篇教程里我们已经可以初步使用Midjourney进行出图了。 包括也了解了Midjourney的指令与参数。 但如果你想用Midjourney去生成各种各样高质量的图片, 并且生成的图片是你想要的画面内容,也就是更好控制生成图片的画面内容与风格&#xf…

电脑小白需要知道这些

电脑小白需要知道这些 解决问题 对于刚买到电脑,不懂电脑的新手需要学什么和知道什么,有什么是误区 需要知道 1.Wiodws 10\Windows11不在需要安装杀毒软件 甚至于电脑自带防火墙都可以关闭(有时候打开了防火墙反而导致一些奇奇怪怪的问题…

【书生大模型实战营】基础岛-浦语提示词工程实践

【书生大模型实战营】基础岛-浦语提示词工程实践 活动地址:地址 任务 背景问题:近期相关研究发现,LLM在对比浮点数字时表现不佳,经验证,internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题,例如认为…

生成式AI,在中国工业找到新“活法”

生成式AI,正在经历一场关于落地前景的论战。 在德国中北部城市希尔德斯海姆,世界工业巨头博世已经把生成式AI技术用在了生产线上。他们以AI仿真绘制的方式合成出超过15000张关于产品缺陷的图片,然后将其应用于电机定子生产线的质检。借助生成…

指针基础知识(笔记)

文章目录 1. 概念理解2. 空指针和野指针3. 计算4. 小结5. size_t6. 案例一: 指针查找并返回指定元素索引7. 指针访问多维数组(涉及 int (*ptr)[3]解析)8. 指针数组9. 函数的值传递与地址引用传递① 函数的值传递(pass by value)② 地址传递(pass by reference) 10. 案例二&…

初学Vue

1.v-text 2.v-html 可以解析标签 3.v-pre 4.class绑定 1.字符串绑定 效果 2.对象绑定 效果 3.数组 还可以用data数据带class加上去 4.三元表达式 5.style绑定 1.字符串 2.对象绑定 3.数组绑定 6.计算属性 调用函数 函数如下 面试:计算属性特点 只要值 没有改变…

【Week-G7】Semi-Supervised GAN 实践,使用MNIST数据集

文章目录 一、基础知识二、代码实现2.1 导入所需模块 & 设置网络初始参数2.2 初始化权重2.3 定义算法模型2.4 配置模型2.5 训练模型2.6 训练结果 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导…

使用 Claude3.5 只需 2 分钟快速构建仪表盘

这是用 claude 生成的图表,只花了 2 分钟 目录 Claude何时使用Artifacts?我如何使用Artifacts?我的例子让claude导出本地部署结尾 关键还可以分享 这是分享之后的链接: https://claude.site/artifacts/1cf37377-1d00-4ab2-b8dd-a…

PMP考试一定要考到3A吗?怎么备考?

PMP(Project Management Professional)认证是全球公认的项目管理专业人士资格认证,它代表着项目管理领域的高水平标准。 在备考PMP考试时,有些赛宝关心是否需要考到3A(即三个领域均为Above Target,超出目标…

【中项】系统集成项目管理工程师-第10章 项目整合管理-10.7结束项目或阶段

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

[Python学习日记-3] 编程前选择一个好用的编程工具

[Python学习日记-3] 编程前选择一个好用的编程工具 简介 PyCharm IDE的安装 PyCharm IDE安装后的一些常规使用 简介 在踏上 Python 编程的精彩旅程之前,选择一款得心应手的编程工具无疑是至关重要的一步。这就如同战士在出征前精心挑选趁手的武器,它将…

Unity补完计划 之 音效

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 首先,音频这块组件较少,但是内容很重要,因为对于任何一款非特殊面向人群的游戏来说&a…

SQLiteStudio 连接sqlite3数据库(真机数据库可视化调试)

SQLiteStudio安装 官网链接:https://sqlitestudio.pl/ 下载后,直接按部就班,打开即可使用 用户手册(工具如何使用直接看这份就可以了):https://github.com/pawelsalawa/sqlitestudio/wiki/User_Manual 其…

GoFly快速开发框架代码市场使用说明

说明 我们框架坚持开源的项目绝不能存在收费项目,所以我们gofly快速开发开源版没有内置代码仓插件,因此需要使用代码市场中的代码包需要再企业版中使用,代码市场插件如下: 图1、社区-代码市场​​​​ 他和企业版管理后台的代码仓…

Component和Loader

文章目录 文章内容效果图代码 文章内容 效果图 代码 import QtQuick 2.15 import QtQuick.Window 2.15 import FluentUI import QtQuick.Controls 2.5Window {visible: truewidth: 320height: 240// 自定义组件:需要手动加载Component{id:comRectangle{id:rectwidth: 80heigh…

关闭Windows安全中心

打开Windows安全中心的病毒和威胁防护。 打开该选项的管理设置。 关闭实时保护。

【RTOS面试题】RTOS和Linux的区别

实时操作系统(RTOS, Real-Time Operating System)与Linux操作系统(一种典型的普通操作系统,General-Purpose Operating System, GPOS)之间存在一些显著的区别。这两种操作系统各有侧重,适用于不同的应用场景…

循环执行时数据的同步方式

在dataX-web中循环执行时数据的同步方式 解决中文comment中文乱码 在mysql中 # (0)修改库注释 alter table DBS modify column desc varchar(256) character set utf8; alter table DATABASE_PARAMS modify column PARAM_VALUE varchar(256) characte…

用python创建极坐标平面

极坐标的介绍 http://t.csdnimg.cn/ucau3http://t.csdnimg.cn/ucau3这个文章里可以知道极坐标的基本知识,接下来实现极坐标的绘制 PolarPlane 是 Manim(一个用于数学动画的Python库)中的一个类,用于创建极坐标平面。与笛卡尔…