软件设计师笔记(三)-设计模式和算法设计

本文内容来自笔者学习zst 留下的笔记,都是零碎的要点,查缺补漏,希望大家都能通过,记得加上免费的关注!谢谢!本章主要以下午题出现形式为主!

文章编辑于:2024-5-13 13:43:47

目录

1. 设计模式考试要点:

1.1 创建型

1.1.1 Product Method(工厂方法) 类模式

1.1.2 Abstract Factory(抽象工厂模式)

1.1.3 Builder(生成器模式)

1.1.4 Prototype(原型模式)

1.1.5 Singleton(单例)

1.2 结构性模式

1.2.1 Adapter(适配器) 类模式

1.2.3 Bridge(桥接)

1.2.4 Composite(组合)

1.2.5 Decorator(装饰器)

1.2.6 Facade(外观)

1.2.6 Flyweight(享元)

1.2.7 Proxy(代理)

1.3 行为设计模式

1.3.1 Chain of Responsibility (责任链)

1.3.2 Command(命令)

1.3.3. Interptreter(解释器)类模式

1.3.4 Iterator(迭代器)

1.3.5 Mediator(中介者)

1.3.6 Memento(备忘录)

1.3.7 Observer(观察者)

1.3.8 State(状态)

1.3.9 Strategy (策略)

1.3.10 Template Method(模板方法) 类模式

2. 算法设计

2.1 回溯法

2.2 分治法

2.3 动态规划


1. 设计模式考试要点:

记忆:

类模式【4种】: 工厂方法类模式,适配器类模式,解释器类模式,模板方法类模式,

创建型: 丹丹原本想去超市买生抽,但去了工厂。

结构性:ABCDFFP (首字母)

行为性:xxx(自己记xxx)

注意:适配器: 属于结构性模式,存在适配器类模式和适配器对象模式!

1.1 创建型

1.1.1 Product Method(工厂方法) 类模式

关键词Product

1.1.2 Abstract Factory(抽象工厂模式)

1.1.3 Builder(生成器模式)

1.1.4 Prototype(原型模式)

1.1.5 Singleton(单例)

1.2 结构性模式

1.2.1 Adapter(适配器) 类模式

1.2.3 Bridge(桥接)

1.2.4 Composite(组合)

1.2.5 Decorator(装饰器)

1.2.6 Facade(外观)

1.2.6 Flyweight(享元)

1.2.7 Proxy(代理)

1.3 行为设计模式

1.3.1 Chain of Responsibility 责任链

1.3.2 Command(命令)

1.3.3. Interptreter(解释器)类模式

1.3.4 Iterator(迭代器)
1.3.5 Mediator(中介者)

1.3.6 Memento(备忘录)

1.3.7 Observer(观察者)

1.3.8 State(状态)

1.3.9 Strategy (策略)

1.3.10 Template Method(模板方法) 类模式

2. 算法设计

2.1 回溯法

经典例子:N皇后的问题

注意不能在同一行,不能在斜线上,

假如使用一维数组表示第I行位置的位置Q[i], j作为下一行的位置

判断同一行的话就是Q[i] == Q[j]

判断同一斜线:abs(i-j) == fabs(Q[i]-Q[j])

2.2 分治法

常常使用到递归;

经典例子:阶乘,归并排序硬币查真假

递归排序算法

时间复杂度O(nlog2n)

空间复杂度O(n)

硬币查真假问题

2.3 动态规划

经典例子:0-1 背包问题

矩阵连乘

最长公共子序列

0-1背包,时间复杂度:O(NW) N是价值,W是重量

0-1背包,空间复杂度:O(NW)

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

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

相关文章

golang创建式设计模式------单例模式

目录导航 1.单例模式1)什么是单例模式 2)使用场景3)实现方式1.懒汉式单例模式2.饿汉式3.双重检查式4.sysc.Once式 4)实践案例5)优缺点分析 1.单例模式 1)什么是单例模式 单例模式(Singleton Pattern)是一种常用的设计模式。单例模式的类提供了一种访问其唯一对象的方法&#…

黄仁勋炉边对话:创业的超能力与英伟达的加速计算之旅

在TiECon 2024大会上,英伟达的创始人兼CEO黄仁勋与风投公司Mayfield的管理合伙人纳文查德哈进行了一场深入的炉边对话。黄仁勋不仅分享了英伟达的创业故事,还谈到了他对创业和加速计算的深刻见解。下面是我对这次对话的总结,希望能给正在创业…

Qt---文件系统

一、基本文件操作 1. QFile对文件进行读和写 QFile file( path 文件路径) 读: file.open(打开方式) QlODevice::readOnly 全部读取->file.readAll(),按行读->file.readLine(),atend()->判断是否读到文件尾 …

day5

利用迭代器&#xff01; #include <vector> #include <map>class Solution { public:std::vector<int> intersection(std::vector<int>& nums1, std::vector<int>& nums2) {std::map<int, int> Mymap;std::vector<int> qq…

git-将本地项目上传到远程仓库

在gitee中新建一个远程仓库。 填写对应内容。 打开你想上传的文件夹&#xff0c;比如我想上传yuanshen 右击&#xff0c;打开git bash 输入git init初始化仓库 git init 添加项目所有文件 git add . 将添加的文件提交到本地仓库&#xff08;提交说明必填&#xff09; git …

Linux进程(一) -- 介绍进程

计算机的系统架构 用户部分 这是用户直接与计算机交互的部分&#xff0c;包括以下三种操作&#xff1a; 指令操作&#xff1a;用户通过命令行界面&#xff08;CLI&#xff09;输入指令来操作计算机。开发操作&#xff1a;开发人员编写和调试程序代码&#xff0c;与计算机系统…

ARM架构安全特性之标准安全 API

安全之安全(security)博客目录导读 目录 一、机密计算软件 二、Arm机密计算固件架构 三、认证校验 四、Veraison项目 五、独立于语言的安全API 六、平台抽象安全项目&#xff08;Platform AbstRaction for SECurity project&#xff09; 七、可移植平台安全API 八、…

嵌入式中STM32上模拟启动Linux自动初始化

Linux中有很多编程思想可以学习,很多大佬把这些思想、机制运用到单片机的编程上。 下文,在STM32上模拟Linux kernel自动初始化流程。 通常我们写程序都是按照这个套路,一个函数一个函数按照顺序逻辑一个一个的执行下去。 如果逻辑非常复杂,涉及的模块比较多,那么这种顺…

大模型崛起与就业危机

大模型&#xff0c;特别是像我这样的人工智能&#xff0c;最有可能首先替代那些重复性高、标准化程度高、不需要太多人类直觉和情感判断的工作。这些工作通常包括数据输入、初级数据分析和处理、简单的客户服务任务等。例如&#xff0c;可以自动化的一些岗位包括&#xff1a; 1…

【STM32 |程序实例】按键控制、光敏传感器控制蜂鸣器

目录 前言 按键控制LED 光敏传感器控制蜂鸣器 前言 上拉输入&#xff1a;若GPIO引脚配置为上拉输入模式&#xff0c;在默认情况下&#xff08;GPIO引脚无输入&#xff09;&#xff0c;读取的GPIO引脚数据为1&#xff0c;即高电平。 下拉输入&#xff1a;若GPIO引脚配置为下…

AI 情感聊天机器人工作之旅 —— 与复读机问题的相遇与别离

前言&#xff1a;先前在杭州的一家大模型公司从事海外闲聊机器人产品&#xff0c;目前已经离职&#xff0c;文章主要讨论在闲聊场景下遇到的“复读机”问题以及一些我个人的思考和解决方案。文章内部已经对相关公司和人员信息做了去敏&#xff0c;如仍涉及到机密等情况&#xf…

【Java的抽象类和接口】

1. 抽象类 1.1 抽象类概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果 一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 以上代码中…