<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cuisl37186486的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cuisl37186486</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cuisl37186486]]></copyright><item><title><![CDATA[【无标题】最短路径问题]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/121955656</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/121955656</guid><author>cuisl37186486</author><pubDate>Wed, 15 Dec 2021 17:04:44 +0800</pubDate><description><![CDATA[来自pintia上的一道选择题

试利用Floyed算法，求下图所示有向图的各对顶点之间的最短路径。下列选项哪个给出了正确的最短路径长度矩阵和最短路径矩阵？





答案A和答案D在第二矩阵中，数据类型不一致，排除此答案 ，接下来我们来对比一下答案B和答案C，经过计算得知存在D到A和D到B的最短路径，所以排除答案B，正确答案为C

floyeed算法为求图中任意两个顶点之间的最短路径的算法，每次加入一个顶点看是否有最短路径

根据题意，初始状态为


			A
			B
			C
			D
			
		.]]></description><category></category></item><item><title><![CDATA[最佳归并树]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/119375237</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/119375237</guid><author>cuisl37186486</author><pubDate>Wed, 04 Aug 2021 09:21:02 +0800</pubDate><description><![CDATA[[2013真题]已知三叉树T中6个叶结点的权分别是2，3，4，5，6，7，T的带权路径长度最小是（  ）

解：带权路径长度最小的树为哈夫曼树，在此需要构造一棵3叉哈夫曼树，为了构成严格的哈夫曼树，需要添加虚结点，需要添加的虚结点的个数为：

k=3,m=6,u=(m-1)%(k-1)=5%2=1,需要补：(k-1)-u=1个虚结点

构成的3叉哈夫曼树如下图所示



wpl=(2+3)*3+(4+5)*2+(6+7)*1=46

2.[2019真题]设外存上有120个初始归并段，进行12路归并时...]]></description><category></category></item><item><title><![CDATA[快速排序相关题解]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/118994292</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/118994292</guid><author>cuisl37186486</author><pubDate>Thu, 22 Jul 2021 11:27:42 +0800</pubDate><description><![CDATA[1.对下列关键字序列用快速排序时，速度最快的情形是（ ），速度最慢的情形是（  ）。

A. {21,25,5,17,9,23,30} B.{25,23,30,17,21,5,9}

C. {21，9，17，30，25，23，5}    D.{5,9,17,21,23,25,30}

分析：

当每次的枢轴都把表等分为长度相近的两个子表时，速度是最快的；

当表本身已经有序或逆序时，速度最慢。

D已经排好序，速度最慢

A，C选择在第一趟快速排序时都将表划分为两个长度相同的子表，而A...]]></description><category></category></item><item><title><![CDATA[平衡二叉树]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/118805011</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/118805011</guid><author>cuisl37186486</author><pubDate>Fri, 16 Jul 2021 16:53:36 +0800</pubDate><description><![CDATA[（1）含有20个结点的平衡二叉树的最大深度为（  ）

解：深度最大，也就意味着每层的结点数最少，而且要保持平衡

深度为1时，总结点数1，f(1)=1

深度为2时，总结点数为2,f(2)=2

深度为3时，总结点为4，f(3)=4

依次类推

f(n)=f(n-1)+f(n-2)+1

当深度为6时，至少包含20个结点

（2）[2012统考真题]若平衡二叉树的高度为6，且所有非叶子结点的平衡因子均为1，则该平衡二叉树的结点总数为（ ）。

解：根据平衡二叉树的定义，平衡因子为-1，0，1，当平...]]></description><category></category></item><item><title><![CDATA[B-树的相关习题（1）]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/118680220</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/118680220</guid><author>cuisl37186486</author><pubDate>Mon, 12 Jul 2021 17:51:13 +0800</pubDate><description><![CDATA[（1）高度为5的3阶B树至少有（ ）个结点，至多有（ ）个结点。

解： h=5,m=3,除根之外的所有非终端结点至少有⌈m/2⌉=2棵子树（分支），一个分支发射出一个结点，至多有m=3棵子树，结点数只要求出每一层的子树（分支）数即可。

至少：

第1层： 1个结点 

第2层 ：2个结点，B树定义中，若根结点不是叶结点，至少有2棵子树

第3层 ：2*2=4个  由第2层的2个结点，每个结点至少发出⌈m/2⌉=2个分支得到

第4层： 4*2==8  由第3层的4个结点，每个结...]]></description><category></category></item><item><title><![CDATA[B-树的相关习题（2）]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/118678912</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/118678912</guid><author>cuisl37186486</author><pubDate>Mon, 12 Jul 2021 17:21:19 +0800</pubDate><description><![CDATA[B树的删除操作，这里只讲解删除终端结点的情况，因为删除非终端结点可以转化为删除非终端结点。

如下图3阶B树，做如下操作：

（1）删除60 （2）删除80



      

3阶B树，m=3，除根结点外，每个结点中至少有⌈m/2⌉-1=1个关键字

（1）解：删除60

兄弟够借：结点60中只有一个关键字=⌈m/2⌉-1，该结点的右兄弟中有两个关键字，关键字个数&gt;⌈m/2⌉-1,借用右兄弟结点中的一个关键字，采用的方法是“父子换位”以达到平衡

删除60，用其父结点中的...]]></description><category></category></item><item><title><![CDATA[折半查找算法]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/118031455</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/118031455</guid><author>cuisl37186486</author><pubDate>Fri, 18 Jun 2021 18:04:51 +0800</pubDate><description><![CDATA[折半查找判定树 是一颗 二叉判定树 也是 一棵二叉排序/查找树，即每个结点的值均大于其左子树上所有结点的值，小于其右子树上所有结点的值；
	
	
	折半查找判定树中的结点都是查找成功的情况，
	而将每个结点的空指针指向的一个实际上并不存在的结点——称为外结点，所有外结点即是查找不成功的情况，
	如图7-2(e)虚线框所示。如果有序表的长度为n，则外结点一定有n+1个。
	
	
	在折半查找判定树中，某结点所在的层数即是查找该结点的比较次数。
	查找不成功时的比较次数即是查找相应外结点时与内结点的比较次数..]]></description><category></category></item><item><title><![CDATA[二分判定树的画法]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/118031294</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/118031294</guid><author>cuisl37186486</author><pubDate>Fri, 18 Jun 2021 17:57:33 +0800</pubDate><description><![CDATA[以下给出我在学习中总结的一种比较简便的构造折半二叉判定树的思路以及方法：

思路分析：

在计算mid值时，使用的时mid=（low+high）/2。这里由于mid为int类型，自动默认为向下取整，因此对于一个长度为n序列进行划分之后的序列为 （0，1，2，……，mid-1）mid（mid+1，mid+2，……n-1），此时出现两种情况：

左子序列长==右子序列长（n=2k+1k=0，1，2，……）
左子序列长==右子序列长-1（n=2kk=1，2，3，……）...]]></description><category></category></item><item><title><![CDATA[二分查找相关题解]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/118029340</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/118029340</guid><author>cuisl37186486</author><pubDate>Fri, 18 Jun 2021 16:57:28 +0800</pubDate><description><![CDATA[已经一个长度为16的顺序表，其元素按关键字有序排列，若采用折半查找算法查找一个不存在的元素，则比较的次数至少是（），至多是（）

解：折半查找成功时进行比较的关键字个数最多不超过u
...]]></description><category></category></item><item><title><![CDATA[图的遍历-DFS]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117968121</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117968121</guid><author>cuisl37186486</author><pubDate>Wed, 16 Jun 2021 22:40:56 +0800</pubDate><description><![CDATA[用DFS遍历一个无环有向图，并在DFS算法退栈返回时打印相应的顶点，则输出的顶点序列是()。


	
逆拓扑有序
拓扑有序
	
	
	
无序的
	
	
	
无法确定
	
]]></description><category></category></item><item><title><![CDATA[深度优先搜索检测有向图有无环路算法]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117968029</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117968029</guid><author>cuisl37186486</author><pubDate>Wed, 16 Jun 2021 21:53:23 +0800</pubDate><description><![CDATA[给定有向图G = (V, E)，需要判断该图中是否存在环路（Cycle）。例如，下面的图 G 中包含 4 个顶点和 6 条边。



实际上，上图中存在 3 个环路：0-&gt;2-&gt;0, 0-&gt;1-&gt;2-&gt;0, 3-&gt;3。

深度优先搜索（DFS：Depth-First Search）可以用于检测图中是否存在环。DFS 会对一个连通的图构造一颗树，如果在构造树的过程中出现反向边（Back Edge），则认为图中存在环路。



对于非连通图，可以对图中的不同部分分别进行 D.]]></description><category></category></item><item><title><![CDATA[队列及其相关题解]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117933473</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117933473</guid><author>cuisl37186486</author><pubDate>Tue, 15 Jun 2021 21:28:36 +0800</pubDate><description><![CDATA[若用数组A[0...5]来实现循环队列，且当前rear和front的值分别为1和5，当从队列中删除一个元素，再加入两个元素后，rear和front的值分别为（　）。

front=
]]></description><category></category></item><item><title><![CDATA[时间和空间复杂度计算]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117932956</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117932956</guid><author>cuisl37186486</author><pubDate>Tue, 15 Jun 2021 21:10:33 +0800</pubDate><description><![CDATA[算法分析(应用)

下面 SumPower 函数的时间复杂度为 ▁▁▁▁▁ 。


double Power(double x, int n)
{
    double y = 1.0, p = x;
    int t = n;
    for (t = n; t &gt; 0; t /= 2)
    {
        if (t % 2)
        {
            y *= p;
        }
        p *= p;
    }
    return y;
}

do]]></description><category></category></item><item><title><![CDATA[顺序表的相关题解]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117932661</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117932661</guid><author>cuisl37186486</author><pubDate>Tue, 15 Jun 2021 20:45:22 +0800</pubDate><description><![CDATA[1.数组A[1..5,1..6]每个元素占5个单元，将其按行优先次序存储在起始地址为1000的连续的内存单元中，则元素A[5,5]的地址为：



数组A有5行，5列，注重行号和列号题目中给出都是从1开始的，5行5列就是我题目中红色标识的元素，该元素是第4*6+5=29个，4就是前面有4行，每行有6个元素，则它的地址为（4*6+4）*5+1000=1140

2.某线性表采用顺序存储结构，每个元素占4个存储单元，首地址为100，则第12个元素的存储地址为（）

顺序表指的是用一组地址连续的存储单元依次存储线]]></description><category></category></item><item><title><![CDATA[图的概念和术语]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117930079</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117930079</guid><author>cuisl37186486</author><pubDate>Tue, 15 Jun 2021 17:54:23 +0800</pubDate><description><![CDATA[在n个结点的无向图中,若该图是连通图,则其边数大于等于n-1,
]]></description><category></category></item><item><title><![CDATA[线索二叉树]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117926370</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117926370</guid><author>cuisl37186486</author><pubDate>Tue, 15 Jun 2021 15:38:48 +0800</pubDate><description><![CDATA[（1）若X是后序线索二叉树中的叶结点，且X存在左兄弟结点Y，则X的右线索指向的是（　）。

根据题意，x存在左兄弟结点y,说明x是右边的那个结点

由于是rg
]]></description><category></category></item><item><title><![CDATA[最小生成树Prim算法理解]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117670920</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117670920</guid><author>cuisl37186486</author><pubDate>Mon, 07 Jun 2021 18:19:50 +0800</pubDate><description><![CDATA[MST（Minimum Spanning Tree，最小生成树）问题有两种通用的解法，Prim算法就是其中之一，它是从点的方面考虑构建一颗MST，大致思想是：设图G顶点集合为U，首先任意选择图G中的一点作为起始点a，将该点加入集合V，再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小，此时将b点也加入集合V；以此类推，现在的集合V={a，b}，再从集合U-V中找到另一点c使得点c到V中任意一点的权值最小，此时将c点加入集合V，直至所有顶点全部被加入V，此时就构建出了一颗MST。因为有N个顶点，所以]]></description><category></category></item><item><title><![CDATA[哈夫曼树的相关习题]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/117266299</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/117266299</guid><author>cuisl37186486</author><pubDate>Tue, 25 May 2021 22:36:18 +0800</pubDate><description><![CDATA[为五个使用频率不同的字符设计哈夫曼编码，下列方案中哪个不可能是哈夫曼编码？

A.00，100，101，110，111

B.000，001，01，10，11

C.0000，0001，001，01，1

D.000，001，010，011，1

哈夫曼树中不存在度为1的结点，A不符合
...]]></description><category></category></item><item><title><![CDATA[树的性质相关题解]]></title><link>https://blog.youkuaiyun.com/cuisl37186486/article/details/116668393</link><guid>https://blog.youkuaiyun.com/cuisl37186486/article/details/116668393</guid><author>cuisl37186486</author><pubDate>Tue, 11 May 2021 20:22:03 +0800</pubDate><description><![CDATA[树的性质相关题解

一棵满二叉树中有127个结点，其中叶结点有多少个？
根据总结点数计算出树的高度，-1=127,解得k=7
	叶子结点也就是第7层上的结点数，
]]></description><category></category></item></channel></rss>