笔试数据结构选填题

news2024/12/22 18:07:29

目录

卡特兰数Catalan:出栈序列/二叉树数

二叉树

N0=1+N2

哈夫曼树(最优二叉树)Huffman

度m的哈夫曼树只有度为0和m的结点:Nm=(n-1)/(m-1)

平衡二叉树AVL

Nh表示深度为h最少结点数,则N0=0,N1=1,N2=2,Nh=Nh-1+Nh-2+1

最小生成树

最短路径

模式匹配

BF模式匹配:最坏T(n)=O(m*n),实际 接近O(m+n)

KMP模式匹配:O(m+n)


完整见:前端笔试常考设计模式,操作系统,数据结构,ACM模板,经典算法,正则表达式,常用方法_前端考试模板_参宿7的博客-CSDN博客

卡特兰数Catalan:出栈序列/二叉树数

一个栈的进栈序列为1,2,3,...,n,有多少个不同的出栈序列:

合法的出栈序列的数量=出栈序列的总数-非法序列的数量

先序+中序 可 唯一 确定 一棵二叉树

  其关系 就如 入栈序列+出栈序列 可 唯一 确定 一个 栈

∴先序 确定 二叉树个数,即先序 确定 中序个数,

NLR确定LNR,LN、NL相当于压栈,R相当于进了立即出

∴h(n)=Catalan卡特兰数= 

img

二叉树

N0=1+N2

哈夫曼树(最优二叉树)Huffman

度m的哈夫曼树只有度为0和m的结点:Nm=(n-1)/(m-1)

平衡二叉树AVL

Nh表示深度为h最少结点数,则N0=0,N1=1,N2=2,Nh=Nh-1+Nh-2+1

最小生成树

  1.  定义:连通无向带权  的生成树,权值之和最小
  2. 唯一:当任意环中边的权值相异,则最小生成树唯一

普里姆Prim算法

克鲁斯卡Kruskal算法

共同

基于贪心算法

特点

顶点开始扩展最小生成树

,选择不构成环

最短路径

Dijkstra算法

Floyd算法

问题

单源最短路径(单起源到各个顶点的最短距离,从源点的临近点开始)

各个顶点之间的最短路径

模式匹配

主串S,长n,模式串T,长m。T在S中首次出现位置

BF模式匹配:最坏T(n)=O(m*n),实际 接近O(m+n)

KMP模式匹配:O(m+n)

  1. next[j]:T第j个字符失配S中的第i个字符,需要用T第next[j]个字符与S中的第i个字符 比较

abcdeabf(f失配,第next[j]=3个字符c比较)T起点开始,和失配点结束最大公共前缀

  1. next[1]=0i++;
  2. next[2]=1,next[j]:i不变;

 模式匹配过程:

  1. S中第i个char,T中第j个char
  2. j指向 失配点/ j=m(全部匹配成功) 为 一趟

虽KMP的T(n)=O(m+n)

实际BFT(n)接近O(m+n)

∴至今采用

只有T中有很多部分匹配KMP才明显快

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

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

相关文章

Linux下TCP网络服务器与客户端通信程序入门

文章目录 目标服务器与客户端通信流程TCP服务器代码TCP客户端代码 目标 实现客户端连接服务器,通过终端窗口发送信息给服务器端,服务器接收到信息后对信息数据进行回传,客户端读取回传信息并返回。 服务器与客户端通信流程 TCP服务器代码 …

AI 绘画Stable Diffusion 研究(五)sd文生图功能详解(下)

大家好,我是风雨无阻。 上一篇文章详细介绍了sd文生图的功能及使用注意事项,感兴趣的朋友可以前往查看:AI 绘画Stable Diffusion 研究(四)sd文生图功能详解(上) 。 那今天这篇文章,我…

【牛客网】二叉搜索树与双向链表

二叉搜索树与双向链表 题目描述算法分析编程代码 链接: 二叉搜索树与双向链表 题目描述 算法分析 编程代码 /* struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {} };*/ class Solution { public:…

解决Hadoop审计日志hdfs-audit.log过大的问题

【背景】 新搭建的Hadoop环境没怎么用,就一个环境天天空跑,结果今天运维告诉我说有一台服务器磁盘超过80%了,真是太奇怪了,平台上就跑了几个spark测试程序,哪来的数据呢? 【问题调查】 既然是磁盘写满了&…

第七章 图论

第七章 图论 一、数据结构定义 图的邻接矩阵存储法#define MaxVertexNum 100 // 节点数目的最大值// 无边权,只用0或1表示边是否存在 bool graph[MaxVertexNum][MaxVertexNum];// 有边权 int graph[MaxVertexNum][MaxVertexNum];图的邻接表存储法 把所有节点存储为…

python手机编程软件app下载,用手机编程python的软件

本篇文章给大家谈谈python手机编程软件app下载,以及python编程手机软件哪个好,希望对各位有所帮助,不要忘了收藏本站喔。 前言 相信多数安卓用户都使用过Qpython这款移动端的Python编辑器吧?之前我也研究过一阵子这个工具&#xf…

轮足机器人硬件总结

简介 本文主要根据“轮腿机器人Hyun”总结的硬件部分。 轮腿机器人Hyun开源地址:https://github.com/HuGuoXuang/Hyun 1 电源部分 1.1 78M05 78M05是一款三端稳压器芯片,它可以将输入电压稳定输出为5V直流电压. 1.2 AMS1117-3.3 AMS1117-3.3是一种输…

钉钉群消息推送

1. 添加钉钉群机器人 PC端登录(当前版本手机端无法进行推送关键词设置),群设置--> 机器人 --> webhook进行安全设置复制webhook对应的url 2. 群消息推送 钉钉群消息支持纯文本和markdown类型 2.1 调用示例源码 import com.alibaba.…

【Python】导函数 及 求解微分方程

如何用Python求解微分方程,主要是基于Python的 sympy 库来进行微分运算,sympy库的 diff函数主要用于导函数,dsolve函数用于解微分方程。 导函数 import sympy as sp# 定义符号变量 x sp.symbols(x)# 定义函数 f sp.sin(x) * sp.exp(x)# 求…

SpringBoot整合Elasticsearch(最新最全,高效安装到使用)

文章目录 一、安装Elasticsearch相关插件1.选择版本2.安装Elasticsearch3.安装node4.安装grunt5.安装es-head插件6.安装kibana7.安装ik分词器 二、整合SpringBoot和Elasticearch1.pom.xml2.application.yml3.ElasticSearch(实体类)4.ElasticSearchReposi…

devops(前端)

1.前言 前端的打包流程和后端的流程是一样的,只是打包的环境和制作的镜像有所不同,前端需要使用nodejs环境打包,镜像也是使用nginx镜像,因为用的是k8s的pod运行镜像,还需要使用configmap挂载nginx的配置,一…

04|Oracle学习(外键约束)

备注:下文中出现的 add constraints应改为add constraint,不需要加s 1.外键约束介绍 1.1 什么是外键约束: 如果按下面的设计,直接在原表中添加“班级编号”、“班级名称”、“班主任”、“班级描述”这些列名,会出现…

# Windows 环境下载 Android 12源码

前言 Android 官网(该方式不适合 Windows 平台):https://source.android.com/source/downloading.html (备注自 2021 年 6 月 22 日起,安卓操作系统不再支持在 Windows 或 MacOS 上进行构建,如果要编译源码推荐先安装…

JavaScript Object所有方法

下面将会一一介绍上面的方法。 Object.create Object.create() 方法创建一个拥有指定原型和若干个指定属性的对象。 Object.create(proto [, propertiesObject ])proto 为新创建对象的原型对象,设置为null可创建没有原型的空对象。propertiesObject 包涵若干个属性…

Kubernetes系列-Ingress

1 Ingress 概述 Kubernetes 对外暴露服务(Service)主要有两种方式:NodePort,LoadBalance,此外 externalIps 也可以使各类 service 对外提供服务,但是当集群服务很多的时候,NodePort方式最大的缺…

静态资源导入探究

静态资源可以在哪里找呢?我们看看源码 从这个类进去 里面有个静态类 WebMvcAutoConfigurationAdapter 有个配置类,将这个类的对象创建并导入IOC容器里 这个静态类下有个方法 addResourceHandlers(ResourceHandlerRegistry registry)静态资源处理器 若自…

【测试联调】如何在前后端测试联调时优雅的构造异常场景

目录 背景 使用iptables实现 利用iptables丢弃某ip数据包 使用 -L 列出所有规则 IP 连通性 通信 测试 插入一条规则,丢弃此ip 的所有协议请求 列出所有规则 测试 丢弃规则内的IP 连通性 清除 规则列表的 限制 模拟ip进行丢包50%的处理。 mysql proxy 代理…

面试总结-Redis篇章(十一)——分片集群、数据读写规则

分片集群、数据读写规则 主从(解决高并发)和哨兵(解决高可用)分别解决了高并发读、高可用的问题。但是依然有两个问题没有解决:解决办法:使用分片集群可以解决上述问题。 特征:客户端请求可以访…

【uni-app】【Android studio】手把手教你运行uniapp项目到Android App

最开始想写一个自定义背景的弹窗,因为要用到项目的好几个地方,不希望每个地方都需要引入。而且只需要放张图片,加个关闭按钮和功能按钮就行,类似这种效果: 开始写的时候找了一篇博客,写的很详细&#xff0…

vue element el-upload附件上传、在线预览、下载当前预览文件

上传 在线预览&#xff08;iframe&#xff09;&#xff1a; payload&#xff1a; response&#xff1a; 全部代码&#xff1a; <template><div><el-table :data"tableData" border style"width: 100%"><el-table-column prop"d…