【算法与设计模式】
一、数据结构与算法
1、算法性能评估
时间复杂度、空间复杂度
2、数据结构
数组与列表
队列
堆栈
链表
二叉树
多叉树
递归算法
二、设计模式
1、单例
(1)GIL:线程互斥锁。保证同一时刻只有一个线程在进行。
(2)多进程与多线程
1)计算密集型
假如一个计算密集型的任务需要10s的执行时间,总共有4个这样的任务,求运行总时长。
在 4核及以上的情况下:
多进程:4个CPU开启4个进程,进程并行,执行时间10s多。
多线程:1个CPU(进程)同时开启4个线程,开启线程消耗的资源很少,但实际运行CPU只有1个,所有执行时间40s多。
计算密集型考虑多进程,多个CPU同时跑,比如计算圆周率。
2)IO密集型
IO密集型,IO操作需要花费很长的时间(或者网络请求time.sleep(),多个CPU并不能提效,反而进程切换也需要花费时间)远大于CPU。此时,多个CPU跑反而时间更长。
2、工厂模式
3、其他设计模式
(1)代理模式定义
为其他对象提供一种代理以控制整个对象的访问
(2)代理模式uml图

Subject类:函数的定义
Proxy代理类:函数的调用
RealSubject类:函数的具体实现
例:

代理伪代码:
class Proxy(GiveGift):Proxy(SchoolGirl mm):gg = new Pursuit(mm)}GiveLipstick():gg.GiveLipstick()
客户端调用伪代码:
SchoolGirl jiaojiao = new SchoolGirl()
jiaojiao.name = "李娇娇"
Proxy xiaohong = new Proxy(jiaojiao)xiaohong.GiveLipstick()
xiaohong.GiveBracelet()
xiaohong.GivenNecklace()
(2)代理模式的应用
1)远程代理:最经典的是web service。想在本地访问另一台主机的代码,实现方式:在本地开启代理,通过web service发送远程请求,再拿到这个请求供本地调用。在本地调用代理代码,就根本不会知道调用的是远程web应用。可以隐藏这些细节。
2)虚拟代理:存放实例化需要很久的对象,比如网页先看到文字,后看到图片,很多浏览器都是用的这种方式
3)安全代理:控制真实对象的访问权限
4)智能指引:调用真实对象时,处理另外一些事,比如计算知识对象的引用次数。
4、设计模式基本原则
相关文章:
【算法与设计模式】
一、数据结构与算法 1、算法性能评估 时间复杂度、空间复杂度 2、数据结构 数组与列表 队列 堆栈 链表 二叉树 多叉树 递归算法 二、设计模式 1、单例 (1)GIL:线程互斥锁。保证同一时刻只有一个线程在进行。 (2)…...
Javaweb之javascript的小案例的详细解析
1.5.4 案例 1.5.4.1 需求说明 鲁迅说的好,光说不练假把式,光练不说傻把式。所以接下来我们需要通过案例来加强对于上述DOM知识的掌握。需求如下3个: 点亮灯泡 将所有的div标签的标签体内容后面加上:very good 使所有的复选框呈现被选中的…...
Vant 移动端UI 组件自动引入
Vue项目中安装Vant # Vue 3 项目,安装最新版 Vant npm i vant 组件按需引入配置 Vant按需引入- - -安装:unplugin-vue-components 插件 unplugin-vue-components 插件可以在Vue文件中自动引入组件(包括项目自身的组件和各种组件库中的组件&…...
敏捷开发是什么?敏捷开发流程是怎么样的?
1. 什么是敏捷开发? 敏捷开发是一种迭代、增量式的软件开发方法,旨在通过灵活、协作和快速响应变化的方式,提高开发团队的效率和产品的质量。相较于传统的瀑布式开发模型,敏捷开发更加注重用户需求的响应和团队协作࿰…...
【CASS精品教程】cass3d 11.0加载超大影像、三维模型、点云数据
CAD2016+CASS11.0(内置3d)下载与安装: 【CASS精品教程】CAD2016+CASS11.0安装教程(附CASS11.0安装包下载)https://geostorm.blog.csdn.net/article/details/132392530 一、cass11.0 3d支持的数据 cass11.0中的3d模块增加了多种数据的支持,主要有: 1. 三维模型 点击…...
Unity Input System最简单使用
开始学的是 Input Manager 比较好理解,Input System却不好理解,教程也找了很多,感觉都讲的不清楚,我这里做一个最简单的用 Input System 添加鼠标左键和右键的效果。 1. 安装 Input System 包 首先这个功能不是内置的࿰…...
3.前端调式(断点调式)
1. Elements 先来看这张图最上头的一行是一个功能菜单,每一个菜单都有它相应的功能和使用方法,依次从左往右来看 箭头按钮 用于在页面选择一个元素来审查和查看它的相关信息,当我们在Elements这个按钮页面下点击某个Dom元素时,箭…...
拓扑排序软件设计——ToplogicalSort_app(含有源码、需求分析、可行性分析、概要设计、用户使用手册)
拓扑排序软件设计 前言1. 需求分析2. 可行性分析2.1 简介2.2 技术可行性分析2.2.1 技术实现方案2.2.2 开发人员技能要求2.2.3 可行性 2.3 操作可行性分析2.4 结论 3. 项目报告3.1 修订历史记录3.2 软硬件环境3.3 需求分析3.4 详细设计3.4.1 类设计3.4.2 核心流程描述3.4.3 核心…...
ESP32网络开发实例-将数据保存到InfluxDB时序数据库
将数据保存到InfluxDB时序数据库 文章目录 将数据保存到InfluxDB时序数据库1、InfluxDB介绍与安装3、软件准备4、硬件准备5、代码实现6、InfluxDB数据可视化在本文中,将介绍 InfluxDB 以及如何将其与 ESP32 开发板一起使用。 我们将向展示如何创建数据库桶并将 ESP32 数据发送…...
NestJS——基于Node.js 服务器端应用程序的开发框架
文章目录 前言什么是 NestJS? 一、NestJS特性?二、使用步骤Typescript 知识后端开发基本知识新建项目目录结构 前言 Nestjs中文文档 什么是 NestJS? Nest (NestJS) 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的开发框架。它利用…...
EXCEL中将UTC时间戳转为日期格式(精确到秒)
UTC时间戳的格式通常是一个整数,表示从1970年1月1日00:00:00 UTC到当前时间的总秒数。它可以以秒或毫秒为单位表示。例如,如果当前时间是2023年3月17日 12:34:56 UTC,则对应的UTC时间戳为1679839496(以秒为单位)或1679…...
2023年【起重机械指挥】考试试卷及起重机械指挥操作证考试
题库来源:安全生产模拟考试一点通公众号小程序 2023年起重机械指挥考试试卷为正在备考起重机械指挥操作证的学员准备的理论考试专题,每个月更新的起重机械指挥操作证考试祝您顺利通过起重机械指挥考试。 1、【多选题】《中华人民共和国特种设备安全法》…...
组件的设计原则
目录 插槽的基本概念 基础用法 具名插槽 使用场景 布局控制 嵌套组件 组件的灵活性 高级用法 作用域插槽 总结 前言 Vue 的 slot 是一项强大的特性,用于组件化开发中。它允许父组件向子组件传递内容,使得组件更加灵活和可复用。通过 slot&…...
安卓编译命令mm和mmm的区别(mm编译当前工作目录,mmm可编译指定目录)
文章目录 1. mm示例 2. mmm示例 注意 在Android操作系统的源代码编译过程中, mm和 mmm是两个用于构建部分代码的常用命令。它们都属于Android build system提供的命令集合,但用途略有不同: 1. mm mm(make module)命…...
计算机毕业设计 基于Springboot的影院购票管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
使用.net 构建 Elsa Workflow
对接过蓝凌OA 也基于泛微OA数据库原型重新研发上线过产品,自研的开源的也上线过 每个公司对OA流程引擎介绍 都不一样的, 比如Elsa 这款微软MVP开源组件,基于跨平台开发的技术含量高,专门做OA的同行推过对应文章。 直接看怎么用吧。…...
open clip论文阅读摘要
看下open clip论文 Learning Transferable Visual Models From Natural Language Supervision These results suggest that the aggregate supervision accessible to modern pre-training methods within web-scale collections of text surpasses that of high-quality crowd…...
Vue3像Vue2一样在prototype(原型)上挂载数据
Vue2的写法 import App from ./App import Vue from vue import ./uni.promisify.adaptor Vue.config.productionTip false App.mpType app import config from "./static/js/config/config.js" Vue.prototype.$configconfig; const app new Vue({...App }) app.…...
API接口自动化测试
本节介绍,使用python实现接口自动化实现。 思路:讲接口数据存放在excel文档中,读取excel数据,将每一行数据存放在一个个列表当中。然后获取URL,header,请求体等数据,进行请求发送。 结构如下 excel文档内容如下&#x…...
基于springboot实现驾校管理系统项目【项目源码】
基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言࿰…...
glogg终极指南:如何通过智能架构设计实现高性能日志分析
glogg终极指南:如何通过智能架构设计实现高性能日志分析 【免费下载链接】glogg A fast, advanced log explorer. 项目地址: https://gitcode.com/gh_mirrors/gl/glogg glogg是一款专为开发者和系统管理员设计的跨平台日志查看器,它巧妙地将grep的…...
免费Windows风扇控制神器:FanControl完全掌控你的电脑散热
免费Windows风扇控制神器:FanControl完全掌控你的电脑散热 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendin…...
低空经济新引擎:一文读懂固定翼无人机
低空经济新引擎:一文读懂固定翼无人机 引言 随着低空经济被正式确立为国家战略性新兴产业,无人机技术正从“小众极客”走向“大众应用”的广阔天地。在众多无人机形态中,固定翼无人机以其长航时、大载重、高效率的独特优势,成为物…...
如何用10分钟语音数据训练专业级AI变声模型:RVC语音转换终极指南
如何用10分钟语音数据训练专业级AI变声模型:RVC语音转换终极指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voi…...
大数据之路--维度设计
一、维度设计基础1、维度的基本概念维度是维度建模的基础和灵魂。在维度建模中,将度量称为事实,将环境描述为维度,唯独用于分析事实所需要的多样环境。维度所包含的表示维度的列称为维度属性。维度属性是查询约束条件、分组和报表标签生成的基…...
iperf3高级玩法:用这些参数组合,精准定位你的网络瓶颈(含TCP/UDP对比测试)
iperf3高级玩法:用参数组合精准定位网络瓶颈 当视频会议频繁卡顿、文件传输速度异常缓慢时,大多数人的第一反应是"网络带宽不够"。但真实情况往往复杂得多——可能是TCP拥塞控制策略不适应高延迟链路,或是UDP流被路由器限速&#x…...
最短路径算法:如何使用数据导航和优化
原文:towardsdatascience.com/shortest-path-algorithms-how-to-use-data-to-navigate-and-optimize-746809d51e8f https://unsplash.com/ 在 Unsplash 上提供](…/Images/6f861b51b31c488d694759f308a2da6e.png) 图片由 [Unsplash](https://unsplash.com/photos/t…...
Java静态镜像内存优化实战手册(Heap Size从286MB直降至42MB的完整链路)
第一章:Java静态镜像内存优化实战手册(Heap Size从286MB直降至42MB的完整链路)在GraalVM Native Image构建的Java服务中,初始堆内存(-Xms)常被默认设为256MB以上,导致容器资源浪费严重。本章基于…...
AT24C256 EEPROM驱动开发与I²C时序工程实践
1. AT24C256 EEPROM驱动库技术解析与工程实践指南AT24C256 是一款经典的IC接口串行EEPROM芯片,由Atmel(现属Microchip)设计,广泛应用于工业控制、仪器仪表、通信设备及消费电子等嵌入式系统中。其256Kbit(32KB…...
M2LOrder API文档实战:Swagger交互式调试/predict接口参数详解
M2LOrder API文档实战:Swagger交互式调试/predict接口参数详解 1. 引言:从WebUI到API,解锁情绪识别的自动化能力 如果你已经体验过M2LOrder的WebUI界面,用那个简洁的网页输入文字、点击按钮,然后看着它分析出“happy…...
