【中级软件设计师】上午题16-算法(应试考试简略版)

上午题16-算法

  • 1 回溯法
    • 1.1 n皇后问题
  • 2 分治法
  • 3 动态规划
    • 3.1 0-1背包问题
    • 3.2 最长公共子序列
    • 3.3 矩阵连乘
  • 4 贪心算法
  • 5 分支限界法
  • 总结


在这里插入图片描述

1 回溯法

深度优先方法搜索

1.1 n皇后问题

2 分治法

一般来说,分治算法在每一层递归上都有3个步骤
(1)分解将原问题分解成一系列子问题。
(2)递归地求解各子问题。
(3)若子问题足够小,则直接求解
(4)求解合并。将子问题的解合并成原问题的解。

大多数情况用递归来实现,但是不是一定

快速排序 划分代价很大,合并代价很小
归并排序相反
他们的时间复杂度都是O(nlog2n)

3 动态规划

最优子结构和重复子问题
自底向上方法计算最优值

3.1 0-1背包问题

时间和空间复杂度都是O(N*W)

分支限界法,回溯法,动态规划,这三种办法都可以处理0-1背包问题
贪心只能处理部分背包问题,不能处理0-1背包问题
贪心能够得到部分背包问题的最优解

3.2 最长公共子序列

暴力求解时间复杂度O( n 2 n n{2}^{n} n2n)
动态规划时间复杂度为O(n^2)

3.3 矩阵连乘

时间复杂度O(n^3)
空间复杂度O(n^2)
在这里插入图片描述

4 贪心算法

局部最优
最大最小,最远最近都是贪心选择

dijkstra算法 时间复杂度O(|V^2|)
Kruskal算法 克鲁斯卡尔 O(|E|log2|E|) 适用于边稀疏

5 分支限界法

广度优先的方法搜索


总结

1.回溯法:深度优先
2.分支限界法:广度优先
3.贪心:局部最优
部分背包问题
4.动态规划:最优解
a. 01背包
b.公共子序列
C.矩阵连乘

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

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

相关文章

C++——缺省参数与重载函数

目录 ​前言 一.缺省参数 1.1缺省参数概念 1.2缺省参数分类 注意事项: 二.函数重载 2.1函数重载概念 2.2c支持函数重载原理——命名修饰 前言 本篇文章主要讲述c中有关于缺少参数与函数重载的相关概念与实例,以下是本人拙见,如有错误…

【Linux学习笔记】一篇文章彻底搞定“Linux生产者与消费者“!

本章重点 1.生产者消费者模型2.posix信号量,以及读写锁。3. 理解基于读写锁的读者写者问题。 一. 生产者消费者模型 为何要使用生产者消费者模型 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯&#xff0…

单点登录和统一身份认证的区别

在工作过程中,总被问到单点登录和统一身份认证的问题。笔者打算尝试用更通俗的方式解释统一身份认证(Unified Identity Authentication)和单点登录(Single Sign-On,简称SSO)之间的区别。 1.定义&#xff1…

专业音频修复软件:iZotope RX 11 for Mac 激活版

iZotope RX 专为满足后期制作专业人士的苛刻需求而设计的一款专业音频修复软件。iZotope RX 10添加了新的特性和功能,以解决当今后期项目中存在的一些最常见的修复问题,使其成为音频后期制作的最终选择。虽然包含许多其他新功能,但这里是新的…

微信小程序的设计与实现

微信小程序的设计与实现 目录 1.系统简述: 2.开发工具及相关技术: 2.1 HTML、WXSS、JAVASCRIPT技术 2.2 Vanilla框架 2.3 uni-app框架 2.4 MYSQL数据库 3.工程结构及其说明: 4.主要功能展示 4.1登录 4.2 注册 4.3 首页…

【C++11】C++11类与模板语法的完善

目录 一,新的类功能 1-1,默认成员函数 1-2,强制生成关键字 二,可变参数模板 2-1,模板参数包 2-3,模板参数包的实际运用 2-2,STL容器empalce的相关接口 三,模板参数包和empla…

002.反应式编程的必要性

在实际应用程序中,您可以在许多情况下发现可能的时变变量—例如,GPS位置、温度、鼠标坐标,甚至文本框的内容。所有这些都有一个随时间变化的值应用程序会发生反应,因此是时变的。还有一点值得一提时间本身就是一个时变;它的值一直…

Unicode字符集和UTF编码

文章目录 前言一、字符集和编码方式二、unicode字符集utf32编码utf8编码utf8编码函数示例utf8解码函数示例 utf16编码utf16编码解码函数示例 总结 前言 本文详细介绍 u n i c o d e unicode unicode 字符集和其相关的三种编码方式: u t f 8 utf8 utf8,…

华为认证存储HCIE有用吗?

首先,对于个人来说,获得华为存储认证可以证明其具备信息存储技术的专业能力 1.专业认可:获得华为存储认证,尤其是HCIE-Storage级别的证书,意味着持有者对信息存储技术有着全面深入的理解,能够设计、部署、…

Java基本数据类型包装类

Java 中的基本数据类型包装类(Wrapper Classes)用于封装对应的基本数据类型,提供了一些额外的功能和操作。 以下是 Java 中的基本数据类型和对应的包装类: 整数类型: byte:Byteshort:Shortint&…

JPA@Entry报错Could not determine recommended JdbcType for Java type

问题很明显,无法自动决定类型,那就手动告诉该字段。 一、直接上解决方案 如果是一对一的关系用 OneToOne 如果是一对多的关系用 OneToMany 如果是多对一的关系用 ManyToOne 二、另一个无空构造函数的问题 使用注解后,注解报错找不到空的…

实训八:使用jQuery技术实现企业信息展示系统的相关功能

实训八:使用jQuery技术实现企业信息展示系统的相关功能 1.题目 使用jQuery技术实现企业信息展示系统的相关功能。 2.目的 (1)掌握jQuery的基本知识。 (2)掌握jQuery的应用方法。 (3)进一步理解Ajax程序的设计方法。 (4)会利用所学知识设计简单的应用程序。 3.内容 用jQuery技术…

【SpringBoot记录】从基本使用案例入手了解SpringBoot-数据访问-更改DataSource(2)

前言 通过上一个数据访问基本案例成功可以发现,SpringBoot在数据访问案例中也做了许多自动配置,上节只分析了其中的Properties。 而在自动配置包的jdbc下 还有其他配置文件。 根据名称可以大致了解他们的作用: DataSourceAutoConfiguration…

如何8步完成hadoop单机安装

前言 Hadoop是一个开源框架,用于存储和处理大规模数据集。 系统要求 Ubuntu 20.044GB(建议8GB)hadoop-3.3.6 步骤1:更新系统 打开终端并输入以下命令来更新您的系统: apt update 步骤2:安装Java Had…

卸载RabbitMq

卸载RabbitMQ的方法取决于您最初安装它时所使用的工具和平台。以下是在一些常见Linux发行版中卸载RabbitMQ的步骤: 对于基于Debian或Ubuntu的系统(使用APT) 停止RabbitMQ服务: sudo service rabbitmq-server stop # 对于使用Syst…

AOP(面向切面编程)详解

AOP(面向切面编程)详解 面向切面编程(AOP)是一种编程范式,旨在通过将横切关注点(例如日志记录、事务管理、安全性等)与业务逻辑分离来提高代码的模块化。AOP是OOP(面向对象编程&…

uniapp 使用renderjs的一些详细介绍

一、简介 官方链接:uniapp官网中的renderjs方法的详细介绍 二、renderjs 定义 renderjs是一个运行在视图层的js。它比WXS更加强大。它只支持app-vue和web。 作用: 大幅降低逻辑层和视图层的通讯损耗,提供高性能视图交互能力。在视图层操作d…

.Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 发布到 Win7+

.Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 实测可以完整运行在 win7sp1/win10/win11. 如果用其他工具打包,还可以运行在mac/linux下, 传送门BlazorHybrid 发布为无依赖包方式 安装 WebView2Runtime 1.57 MB或136 MB 测试DEMO 发布为依赖包方式 安装 WebView2Runtime 1.…

python Pandas 操作

Pandas 介绍 Pandas 是一个功能强大的 Python 数据分析工具库,常用于数据处理与分析工作。它为 Python 提供了快速、灵活以及表达能力强的数据结构,旨在简化“实际工作中”的数据操作,使得 Python 成为一种强大而高效的数据分析环境。 核心特…