当前位置: 首页 > news >正文

笔试数据结构选填题

目录

卡特兰数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.lryc.cn/news/111849.html

相关文章:

  • # 鸢尾花的案例学习
  • 线程、进程的区别
  • 在 Ubuntu 上安装 Docker 桌面
  • 【WebRTC---序篇】(七)RTC多人连麦方案
  • 【Java可执行命令】(十六)诊断命令请求发送工具 jcmd:提供一种简单而强大的方式来管理和监控 Java 进程 ~
  • 如何创建无序列表和有序列表?
  • 【MongoDB】初识、安装MongoDB
  • 方法区内存溢出及常量池
  • 【MTK平台】【wpa_supplicant】关于wpa_supplicant_8/src/p2p/p2p_invitation.c文件的介绍
  • 智能仪表板DevExpress Dashboard v23.1亮点 - 增强对自定义导出的支持
  • 分布式应用:ELK企业级日志分析系统
  • Mac与windows传文件(超过4G且速度超快,非共享)
  • 2023年第四届“华数杯”数学建模思路 - 案例:退火算法
  • STM32 UDS Bootloader开发-上位机篇-CANoe制作(3)
  • GO语言的垃圾回收机制
  • vim粘贴内容格式混乱解决方法
  • 基于Orangepi 3 lts 的云台相机
  • Go重写Redis中间件 - Go实现Redis持久化
  • 单元测试之 - Review一个微服务的单元测试
  • NetSuite 2023.2 Cash 360 功能更新
  • vue2-组件和插件的区别
  • neo4j查询语言Cypher详解(一)--语法和子句
  • PCIe总线详解
  • 【vim 学习系列文章 4 - vim与系统剪切板之间的交互】
  • 代码随想录算法训练营第五十六天| 583. 两个字符串的删除操作 72. 编辑距离
  • Mac强制停止应用
  • Linux系统Redis的哨兵架构配置
  • HarmonyOS/OpenHarmony-ArkTS基于API9元服务开发快速入门
  • macbook怎么卸载软件?2023年最新全新解析macbook电脑怎样删除软件
  • c51单片机16个按键密码锁源代码(富proteus电路图)