牛客网刷题笔记2——数据结构与概率统计(完全二叉树、深度优先算法、广度优先算法、主成分分析等)

阅读提示

本文将提到在刷题时遇到的各类型题目,例如完全二叉树的问题、二路归并、主成分分析、有向图环的判断等等

1、题:完全二叉树问题

二叉树:

1、特点是与每个节点关联的子节点至多有两个(可为0,1,2),即一个节点至多有两颗子树

2、二叉树的两颗子树分别称作它的左子树和右子树

满二叉树:

1、树中每个分支节点(非叶节点)都有两棵非空子树

2、深度为 k 且有 2^k-1个 结点的二叉树称为满二叉树

完全二叉树:

1、只允许最后一层有空缺结点且空缺在右边,即叶子结点只能在层次最大的两层上出现;

2、设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边

3、满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树

注: 由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到

​ n0=(n+1)/2 或 n0=n/2

题: 一颗完全二叉树上有1001个结点,其叶子结点的个数是___

答:

​ 叶子结点数是: n0=[n/2](其中[]表示上取整 )

2、题:二路归并排序

二路归并排序:

1、二路归并排序主要运用了“分治算法”,分治算法就是将一个大的问题划分为n个规模较小而结构相似的子问题。

2、这些子问题解决的方法都是类似的,解决掉这些小的问题之后,归并子问题的结果,就得到了“大”问题的解。

3、二路归并排序主旨是“分解”与“归并”

eg:

归并排序过程:

合并两个有序数组:

二路归并排序的时间复杂度为____

3、题:子串

概念:

串中任意个连续的字符组成的子序列称为该串的子串

计算方法:

ab的子串: a、b、ab、空字串

abc的子串: a、b、c、ab、ac、abc、空子串

4、二叉树基本概念:

二叉树:二叉树是每个节点最多有两个子树的树结构。

根节点:一棵树最上面的节点称为根节点。

父节点子节点:如果一个节点下面连接多个节点,那么该节点称为父节点,它下面的节点称为子 节点。

叶子节点:没有任何子节点的节点称为叶子节点。

兄弟节点:具有相同父节点的节点互称为兄弟节点。

节点度:节点拥有的子树数。上图中,13的度为2,46的度为1,28的度为0。

树的深度:从根节点开始(其深度为0)自顶向下逐层累加的。上图中,13的深度是1,30的深度是2,28的深度是3。

树的高度:从叶子节点开始(其高度为0)自底向上逐层累加的。54的高度是2,根节点23的高度是3。

平衡二叉树: 左右子树的高度相差不超过 1 的树为平衡二叉树。

性质:1、可以是空树

​ 2、假如不是空树,任何一个结点的左子树与右子树都是平衡二叉树,丙炔高度之差的绝对值不超过1

​ 平衡因子: 左子树深度—右子树深度 = 平衡因子

5、题:数据库系统和文件系统

数据库系统与文件系统的主要区别:

文件系统不能解决数据冗余数据独立问题,而数据库系统可以解决

6、题:栈

和顺序栈相比,链栈有一个比较明显的优势是 ___

通常不会出现栈满的情况

★7、深度优先算法、广度优先算法(未解决)

题: 当各边上的权值____时,BFS算法可用来解决单源最短路径问题

答:

​ 若所有边的长度相等,广度优先搜索算法是最佳解——亦即它找到的第一个解,距离根节点的边数目一定最少;但对一般的图来说,BFS并不一定回传最佳解。这是因为当图形为加权图(亦即各边长度不同)时,BFS仍然回传从根节点开始,经过边数目最少的解;而这个解距离根节点的距离不一定最短。这个问题可以使用考虑各边权值,BFS的改良算法 成本一致搜寻法en:uniform-cost search )来解决。然而,若非加权图形,则所有边的长度相等,BFS就能找到最近的最佳解。

8、题:求循环队列中元素个数

设循环队列的容量为50(序号从0到49),现经过一系列的入队和出队运算后,有 front=16,rear=5(rear指向队尾元素的后一位置),当前循环队列中元素个数为 ___

求循环队列中的元素个数的公式为:

rear指向队尾元素的后一位置:

(rear-front+size)%size,size是循环队列的容量 。

front、rear分别指向队头和队尾元素

m = (rear - front + 1 + maxSize) % maxSize。

9、题:平均时间复杂度

对于排序算法,经常关注的是其时间复杂度和稳定性。下列排序算法中平均时间复杂度是O(nlogn)且稳定的是 ____

10、题:主分量分析(PCA)

**题:**下面关于主分量分析(PCA)的描述错误的是___

答:

1、PCA是一种线性、非监督、全局的降维算法。

2、原始数据进行特征提取,可能得到比较高维的特征向量,所以需要降维降低训练复杂度。

11、题:回滚段(未解决)

题:

关于回滚段的使用,下列哪种分配方法比较合适

给系统中每个事务分配回滚段

给短事务分配小回滚段

给长事务分配回大滚段

给长事务分配小回滚段

回滚段:

回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值), 回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息

12、题:判断有向图是否有环

能判断有向图是否有环的是:

DFS

拓扑排序

13、hash碰撞解决方法

哈希函数构造:

1:直接寻址法;

2:取模法;

3:数字分析法;

4:折叠法;

5:平方取中法;

6:除留余数法;

7:随机数法。

处理冲突主要方法有:

1:开地址法

  • ​ 线性探测再散列
  • ​ 二次探测再散列
  • ​ 伪随机再散列

2:链地址法

3:再散列法

4:建立一个公共溢出区

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值