笔试数据结构选填题

目录

卡特兰数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.mzph.cn/news/29369.shtml

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

相关文章

网络防御(7)

课堂实验 R1 [Huawei] int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 100.1.12.2 24 protocolAug 1 2023 10:24:09-08:00 Huawei gOlIFNET/4/LINK STATE(1)[4]:The1ineIp on the interface GigabitEthernet0/0/0 has entered the Up state. [Huawei-GigabitEthernet0/0/…

SpringBoot 底层机制分析【Tomcat 启动+Spring 容器初始化+Tomcat 如何关联Spring 容器】【下】

😀前言 本篇博文是关于SpringBoot 底层机制分析实现,希望能够帮助你更好的了解SpringBoot 😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大…

Linux 查找某个目录下所有文件中是否含有某些字符串

使用如下命令进行查找: find . -name "*" | xargs grep -n --color "hello"查找当前目录下所有文件,找出含有字符串 “hello” 的文件并显示行号。 在~/.bashrc 中添加如下函数: function finds(){if [ -z $1 ];thene…

Leetcode.1559 二维网格图中探测环

题目链接 Leetcode.1559 二维网格图中探测环 rating : 1838 题目描述 给你一个二维字符网格数组 g r i d grid grid ,大小为 m x n ,你需要检查 g r i d grid grid 中是否存在 相同值 形成的环。 一个环是一条开始和结束于同一个格子的长度 大于等于…

lc137. 只出现一次的数字 II

数组排序,既和前不一样又和后不一样的就是唯一的一个 public static int numberOnce(int[] nums) {Arrays.sort(nums);if (nums.length > 2 && nums[0] ! nums[1]) {//避免只有一个元素的数组return nums[0];}if (nums.length > 2 && nums[nu…

PPTP应用案例:让你的网络不再受限

嗨,小伙伴们,作为一家专业的PPTP代理供应商,我们深知网络安全对于每个人的重要性。今天,我将与大家分享一些关于PPTP的应用案例,借此帮助大家更好地了解PPTP的实际应用和专业性。无论你是在公共Wi-Fi上冲浪&#xff0c…

使用MyBatis操作数据库

hi,大家好,今天为大家带来MyBatis操作数据库的知识 文章目录 🐷1.根据MyBatis操作数据库🧊1.1查询操作🍇1.1.1无参查询🍇1.1.2有参查询 🧊1.2删除操作🧊1.3修改操作🧊1.4增加操作🧊…

Windows 安装 pandoc 将 jupyter 导出 pdf 文件

Windows 安装 pandoc 将 jupyter 导出 pdf 文件 1. 下载 pandoc 安装文件2. 安装 pandoc3. 安装 nbconvert4. 使用 pandoc 1. 下载 pandoc 安装文件 访问 https://github.com/jgm/pandoc/releases,下载最新版安装文件,例如,3.1.6.1 版&#…

【Redis面试题整理一】

一、Redis定义 Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,读写速度非常快,被广泛应用于缓存方向。并且,Redis 存储的是 KV 键值对数据。 二、Redis为什么不存在并发竞争 对数据类型的操作都是原子性的&a…

spring-boot webservice的例子

webservice发布服务 源码下载地址 spring-boot-webservice例子资源-CSDN文库 webservice cilent调用 源码下载地址 spring-boot-clintwebservice调用服务的例子资源-CSDN文库

jackson自定义序列化反序列化

jackson自定义序列化和反序列化 自定义序列化 序列化主要作用在返回数据的时候以BigDecimal统一返回3位小数为例自定义序列化处理类继承jackson的JsonSerializer类,重写serialize方法 /*** author liouwb*/ public class BigDecimalSerializer extends JsonSeria…

Web安全——Burp Suite基础上

Burp Suite基础 一、Burp Suite安装和环境配置如何命令行启动Burp Suite 二、Burp Suite代理和浏览器设置FireFox设置 三、如何使用Burp Suite代理1、Burp Proxy基本使用2、数据拦截与控制3、可选项配置Options客户端请求消息拦截服务器端返回消息拦截服务器返回消息修改正则表…

面试题更新之-this指向问题

文章目录 this指向是什么常见情况下 this 的指向怎么修改this的指向 this指向是什么 JavaScript 中的 this 关键字用于引用当前执行代码的对象。它的指向是动态的,根据执行上下文的不同而变化。 常见情况下 this 的指向 全局作用域中的 this: 在全局作…

内网横向移动—WinLinux内存离线读取Hashcat破解RDPSSH存储提取

内网横向移动—Win&Linux&内存离线读取&Hashcat破解&RDP&SSH存储提取 1. 前言2. Windows系统密码提取2.1. 在线读取2.2. 离线读取2.2.1. 无存储读取2.2.1.1. 读取文件2.2.1.2. 本地解密 2.2.2. 有存储读取 2.3. 解决高版本2.3.1. 修改注册表2.3.2. 重新登陆…

分布式Redis详解

目录 前言安装redis的俩种方法Redis 与 MySQL的区别Redis可以实现那些功能Redis常用的数据类型有序列表的底层是如何实现的?什么是跳跃表 Redis在Spring中的使用Redis 中为什么单线程比多线程快Redis的分布式锁如何实现Redis 分布式锁可能出现的问题Redis保持数据不丢失的方式…

掌握C语言输入技巧:getchar()函数消除回车符困扰

在C语言编程的旅程中,你可能会遇到一个令人困惑的情况:使用getchar()函数获取字符时,那讨厌的回车符(\n)又是如何产生和处理的呢?本文将为你揭示这个问题,并分享几种消除回车符困扰的经验。 一…

企升编辑器word编写插件

面向用户群体招投标人员,用统一的模板来编写标书,并最终合并标书。项目经理,编写项目开发计划书,项目验收文档等。开发人员,编写项目需求规格说明书、设计说明书、技术总结等文档。其他文档编写工作量较多的岗位人员。…

vue 点击顶部tab重新请求列表

我们点击 1 2 来回切换时,发现客户经理的列表不会重新请求(菜单中含有客户经理) 这时我们添加以下代码就可以了 watch: {$route(route) {this.getList()}},/** 查询客户经理列表 */getList() {this.loading true;listManager(this.queryParams).then(response > {this.mana…

垃圾搜集器UseParallelGC

查看jdk支持的垃圾收集器有哪些? 当前进程使用的垃圾收集器是什么? 查看默认设置 查看默认设置命令: java -XX:PrintCommandLineFlags -version# -XX:UseParallelGC 查看默认垃圾收集器详细信息命令 通过新生代、老年代名字确定垃圾收集器…

【CSS3】CSS3 动画 ④ ( 使用动画制作地图热点图 )

文章目录 一、需求说明二、动画代码分析1、地图背景设置2、热点动画位置测量3、热点动画布局分析4、动画定义5、小圆点实现6、波纹效果盒子实现7、延迟动画设置 三、代码示例 一、需求说明 实现如下效果 , 在一张地图上 , 以某个位置为中心点 , 向四周发散 ; 核心 是实现 向四周…