高级算法复习

news2024/11/28 14:44:05

时间代价

主定理

在这里插入图片描述
在这里插入图片描述

递归树

排序

在这里插入图片描述

贪心算法

  • 贪心选择性(Greedy-choice property):
    通过做出局部最优(贪婪)选择,可以得出全局最优解——这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别

  • 最优子结构性质(Optimal substructure property):
    当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质——最优子结构性质是该问题可用 动态规划算法 or 贪心算法 求解的关键特征

英语:全局最优解optimum solution
与动态规划区别:是否产生最优解;贪心选择更简单高效;对应问题都具有最优子结构,但贪心算法要满足贪心选择性,动态规划满足重合子问题(overlapping subproblem)

动态规划

矩阵链乘法(Matrix-chain Multiplication)

最长公共子序列(Longest Common Subsequence)

凸多边形的三角形分解(Triangle Decomposition of Convex Polygon)

最优二叉搜索树(The Optimal Binary Search Trees)

B树

  • B树=B-树
  • B树的value在每个节点,B+树的value在叶子节点(内部节点只有key),2-3-4树是4阶B树(4 order)(子树个数可能有2,3,4个,也就是节点key可能有1,2,3个)
  • B树的最小度数(minimum degree)为t,代表每个节点最少有t个子树(根节点除外,根节点可以只有2个子树),即有t-1个key;并且每个节点最多有2t个子树,即有2t个key。题目中介绍B树会说:a B-tree with minimum degree 2
  • B树的阶数(order)=节点子树的上限,B树节点的最小度数t=这棵树的阶数为2t(4阶B树最多有4个子树,节点最小度为2)
  • B树节点的分裂:B树最小度为t,当节点有2t-1个key时也就是full时,如果进行分裂,则左子树有t-1个,右子树有t-1个key,把中间剩下的key移到上一层
  • B树的插入:直接按大小顺序插入到底层,往下走的过程中碰到full节点就分裂(这就避免了最底层节点分裂造成的网上连续分裂),走到底层碰到full节点就先分裂再插入

红黑树

五条性质

在这里插入图片描述

高,黑高,节点个数

在这里插入图片描述
黑高是高的一半: bh = h/2
高为h的树的节点总数2h-1
在这里插入图片描述

红黑树插入节点

1.父叔都是红
在这里插入图片描述
2.父红叔不红----一定接3
在这里插入图片描述
3.父红叔不红
在这里插入图片描述

哈希

chain

用链表解决哈希
The expected time for an unsuccessful search for a record with a given key is = Θ(1 + α)。α是装载因子

开放寻址法

linear probing
  • Given an ordinary hash function h’(k), linear probing uses the hash function h(k,i) = (h’(k) +i) mod m.
Quadratic probing
  • h(k,i) = (h’(k) +c1i+c2i2) mod m.
    Where h’(k) is an auxiliary hash function, c1 and c2 ≠0 are auxiliary constants.
Double hashing
  • h(k,i) = (h1(k) +ih2(k)) mod m.

证明要1/(1–α)个探针才能找到元素

  • Given an open-addressed hash table with load factor α= n/m< 1, the expected number of probes in an unsuccessful search is at most 1/(1–α).

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

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

相关文章

使用Nginx和Spring Gateway为SkyWalking的增加登录认证功能

文章目录 1、使用Nginx增加认证。2、使用Spring Gateway增加认证 SkyWalking的可视化后台是没有用户认证功能的&#xff0c;默认下所有知道地址的用户都能访问&#xff0c;官网是建议通过网关增加认证。 本文介绍通过Nginx和Spring Gateway两种方式 1、使用Nginx增加认证。 生…

用 winget 在 Windows 上安装 kubectl

目录 kubectl 是什么&#xff1f; 安装 kubectl 以管理员身份打开 PowerShell 使用 winget 安装 kubectl 测试一下&#xff0c;确保安装的是最新版本 导航到你的 home 目录&#xff1a; 验证 kubectl 配置 kubectl 是什么&#xff1f; kubectl 是 Kubernetes 的命令行工…

【C#】Mapster对象映射的使用

系列文章 【C#】编号生成器&#xff08;定义单号规则、固定字符、流水号、业务单号&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】日期范围生成器&#xff08;开始日期、结束日期&#xff09; 本文链接&#xff1a;h…

Sectigo SSL

Sectigo&#xff08;前身为ComodoCA&#xff09;是全球在线安全解决方案提供商和全球最大的证书颁发机构。为了强调其在SSL产品之外的扩张&#xff0c;Comodo在2018年更名为Sectigo。新名称减少了市场混乱&#xff0c;标志着公司向创新的全方位网络安全解决方案提供商过渡。 S…

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群 Redis 的多种模式Redis-Alone 单机模式Redis 单机模式的优缺点 Redis 高可用集群模式Redis-Master/Slaver 主从模式Redis-Master/Slaver 哨兵模式哨兵模式监控的原理Redis 节点主客观下线标记Redis 节点主客观…

UnoCSS框架常用语法

文章目录 🍉vscode 开发插件🍉设置边框颜色🍉设置宽、高、背景色、外边距🍉设置flex🍉设置元素在滚动时固定在指定区域内🍉vscode 开发插件 vscode 开发建议安装 UnoCSS插件 🍉设置边框颜色 border-[color]: 设置边框的颜色,[color]可以是预设的颜色名称(如…

自学考试到底难不难?

自学考试难度谈不上大&#xff0c;其难度系数本身并不高&#xff0c;然而有几个难点&#xff0c;需要克服。 #自学#首先&#xff0c;要具备较强的信息搜集能力。zbb990101 从报名到毕业&#xff0c;考生需要主动关注各类考试动态&#xff0c;如专业选择、报名流程、采购教材、…

React【axios、全局处理、 antd UI库、更改主题、使用css module的情况下修改第三方库的样式、支持sass less】(十三)

文件目录 Proxying in Development http-proxy-middleware fetch_get fetch 是否成功 axios 全局处理 antd UI库 更改主题 使用css module的情况下修改第三方库的样式 支持sass & less Proxying in Development 在开发模式下&#xff0c;如果客户端所在服务器跟后…

Java poi给docx中的关键字标记颜色

Java poi给docx中的关键字标记颜色 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId>&l…

k8s 部署mqtt —— 筑梦之路

mqtt是干嘛的&#xff0c;网上有很多资料&#xff0c;这里就不再赘述。 --- apiVersion: apps/v1 kind: Deployment metadata:labels:app: mqttname: mqttnamespace: default spec:replicas: 1selector:matchLabels:app: mqttstrategy:rollingUpdate:maxSurge: 25%maxUnavaila…

鲁大师10月新机性能/流畅/久用榜:骁龙8 Gen3一鸣惊人,双十一“6系”处理器成井喷状态

刚刚过去的10月份手机圈可谓是热闹纷呈,要数量有数量,要新品有新品,要旗舰有旗舰,要走量也有走量。10月份的大部分光芒,毫无疑问都将被骁龙8 Gen3以及重夺骁龙旗舰首发的小米 14系列身上。 骁龙8 Gen3毫无疑问,代表着骁龙旗舰处理器的又一个巅峰,从目前鲁大师后台抓取到的数据…

计算机毕业设计:基于python机器学习的全国气象数据采集预测可视化系统 预测模型+爬虫(包含文档+源码+部署教程)

[毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多的人 。 1、摘 要 随着气候变化的不断加剧&#xff0c;气象数据的准确性…

starrocks 内部表 varchar(num) 和 String 怎么选

盲选string varchar可能会因为脏数据 长度过长出现报错

【FPGA】正确处理设计优先级--或许能帮你节省50%的资源

概述 假如现在有一种方法–可以在不怎么需要修改已有设计的情况下&#xff0c;就可以帮您节省50%的设计资源&#xff0c;那你会试试看吗&#xff1f; 当前市场环境下&#xff0c;更低廉的成本却可获得同等性能无疑是极具诱惑的。本文将介绍一种FPGA设计技术&#xff0c;该技术…

“云芯一体”赋能位置应用,真点高精度定位服务正式发布

11月9日&#xff0c;北斗星通旗下企业真点科技正式发布了云芯一体高精度定位服务——TruePoint.CM(厘米级定位服务)和TruePoint.DM&#xff08;分米级定位服务&#xff09;。 此次发布会在第一届测绘地理信息大会期间举办&#xff0c;中国测绘学会宋超智理事长、中国卫星导航定…

Vue.Draggable 踩坑:add 事件与 change 事件中 newIndex 字段不同之谜

背景 最近在弄自定义表单&#xff0c;需要拖动组件进行表单设计&#xff0c;所以用到了 Vue.Draggable(中文文档)。Vue.Draggable 是一款基于 Sortable.js 实现的 vue 拖拽插件&#xff0c;文档挺简单的&#xff0c;用起来也方便&#xff0c;但没想到接下来给我遇到了灵异事件……

Python数据容器(元组)

元组 1.定义元组 定义元组使用小括号&#xff0c;且使用逗号隔开各个数据&#xff0c;数据是不同的数据类型 # 定义元组字面量 (元素,元素,...,元素) # 定义元组变量 变量名称 (元素,元素,...,元素) # 定义空元组 变量名称 () 变量名称 tuple()2.元组的相关操作 编号方法…

JavaScript_Node节点属性_nodeName

nodeName属性&#xff1a;返回节点的名称 节点的类型有七种 Document&#xff1a;整个文档树的顶层节点 DocumentType&#xff1a;doctype标签 Element&#xff1a;网页的各种HTML标签 Attribute&#xff1a;网页元素的属性 Text&#xff1a;标签之间或标签包含的文本 C…

【kylin】使用nmtui软件配置网桥

文章目录 一、什么是网桥二、如何配置网桥域名解析失败 一、什么是网桥 网桥也叫桥接器&#xff0c;是连接两个局域网的一种存储/转发设备&#xff0c;它能将一个大的LAN分割为多个网段&#xff0c;或将两个以上的LAN互联为一个逻辑LAN&#xff0c;使LAN上的所有用户都可访问服…

go 引入包报错“构建约束排除‘D/...vendor/pkg包’”中所有的GO文件

解决方案&#xff1a; 方案一&#xff1a;没生效 go - 构建约束排除所有 Go 文件 - IT工具网 go modules - build constraints exclude all Go files in - Stack Overflow 方案二&#xff1a;生效&#xff0c;手动初始化创建一个目录 后续再研究原因&#xff0c;有明白的大…