- 博客(14)
- 收藏
- 关注
原创 算法分析与实践_图的m着色问题
一、问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。二、解析在填写每一个顶点的颜色时检查与相邻已填顶点的颜色是否相同。如果不同,则填上;如果相同(冲突),则另选一种;如果已没有颜色可供选择,则回溯到上一顶点。重复这一过程,直到所有顶点的颜色都已填上。 使用color[n],大小为n,n代表顶点,里面的值代表这个顶点放的是哪种颜色。 Traceback(t)的t
2020-06-11 21:42:38 535
原创 算法分析与实践_最优前缀编码
一、问题二、解析三、设计//根据哈夫曼树T求哈夫曼编码表Hvoid CharSetHuffmanEncoding(HuffmanTree T, HuffmanCode H) { int c, p;//c和p分别指示T中孩子和双亲的位置 char cd[n + 1];//临时存放编码 int start;//指示编码在cd中的起始位置 cd[n] = '\0';//编码结束符 getchar(); for (int i = 0; i < n; i++) {//依次求叶子T[i]的
2020-05-16 18:42:26 220
原创 算法分析与实践_相容问题
一、问题二、解析三、设计四、分析时间复杂度:O(n)五、源码https://github.com/weiwenqi666/homework
2020-05-05 16:42:08 153
原创 算法分析与实践_LCS算法
一、问题二、解析三、设计四、分析O(mn)五、源码https://github.com/weiwenqi666/homework
2020-04-25 15:46:45 267
原创 算法分析与实践_矩阵链乘法
一、问题二、解析三、设计四、分析五、源码https://github.com/weiwenqi666/homework
2020-04-19 15:07:48 125
原创 算法分析与实践_选第k小元素
一、问题在一个数组中找到第k小的元素并输出。二、解析三、设计int select(int a[], int low, int high, int k){ int middle; middle = split(a, low, high); if (middle == k) return a[k]; else if (middle < k) return sele...
2020-04-06 15:02:38 301
原创 算法分析与实践_分治法解最近对问题
一、问题在数组P中存储平面上的n>=2个点,并且按照这些点的x轴坐标升序排列,数组Q中存储与P相同的点,只是它按照这些点的y 轴坐标升序排序,得出最近点之间的欧几里得距离。二、解析(1)蛮力算法:当2≤n≤3时,问题就可以通过蛮力算法解决。(2)分治算法:当n>3时,可以利用点集在x轴方向上的中位数m,在该处作一条垂线,将点集分成大小分别为⌈n/2⌉和⌊n/2⌋的两个子集P1...
2020-03-29 23:35:50 233
原创 算法分析与实践_二分归并排序
一、问题对n个不同的数构成的数组A[1…n]进行二分归并排序,其中n=2^k。二、解析1、MergeSort(A,p,r)2、Merge(A,p,q,r)三、设计void Merge(int a[], int temp[], int start, int mid, int end){ int i = start, j = mid + 1, k = start; while (...
2020-03-20 23:33:01 210
原创 算法分析与实践_检索算法
一、问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.二、解析1、顺序查找:顺序查找又叫线性查找,它的查找过程是:从表中第一个(或者最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,者查找成功,找到所查的记录;如果直到最后一个(或者第一个)记录,其关键字和给定值比较都不等时,则表中没...
2020-03-14 15:00:53 166
原创 算法分析与实践_ 使用Dijkstra算法求最短路径
## 一、问题对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200308164507870.png)## 二、解析第一步:选择顶点a。S={a(0)}U={b(1),c(∞),d(∞),e(∞),f(∞),g(∞),h(∞)} a b c d e...
2020-03-08 19:01:26 637
原创 算法分析与实践_Floyd算法求解各个顶点的最短距离
一、问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵)。二、解析从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。对于每一对顶点 u 和v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短。如果是更新它。把图用邻接矩阵G表示出来,如果从Vi到Vj有路可达,则...
2020-03-08 16:36:30 353
原创 算法分析与实践_Kurskal算法构造最小生成树
一、问题设G=(V,E)是无向连通带权图,如果G的一个子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树的各边权的总和称为该生成树的耗费,求在G的所有生成树中耗费最小的最小生成树。二、解析在带权连通图中,不断地在排列好的边集合中找到最小的边,如果该边满足得到最小生成树的条件,就将其构造,直到最后得到一颗最小生成树。注意:相同权值任选其中一个即可,但是不允许出现闭合回路的情况。...
2020-03-01 21:09:32 250
原创 算法分析与实践_Prim算法构造最小生成树
一、问题设图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个顶点,所以该MST就有N-1条边,每一次向集合...
2020-03-01 18:39:30 480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人