- 博客(11)
- 收藏
- 关注
原创 算法实验6
1.问题 寻找第k小个元素:特定分治策略2.解析 3.设计int select_rank_k(int A[], int low, int high, int k){ int r_group = ceil((high - low + 1)*1.0 / r); for (int i = 1; i <= r_group; ++i) { sort(&A[low + (i - 1)*r], &A[(low + i*r - 1) > high ? high : (
2021-04-20 14:46:16 104
原创 算法实验3
1. 问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。2.解析顺序查找:顺序查找是一种最简单和最基本的查找方法,它从顺序表的一端开始,依次将每个元素的关键字同给定值 K 进行比较,直到相等或比较完毕还未找到。二分查找:将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜
2021-03-22 16:24:05 150
原创 采用Kruskal算法构造最小生成树
1.问题采用Kruskal算法构造最小生成树2.解析 先构造一个只含 n 个顶点、而边集为空的子图,把子图中各个顶点看成各棵树上的根结点,之后,从网的边集 E 中选取一条权值最小的边,若该条边的两个顶点分属不同的树,则将其加入子图,即把两棵树合成一棵树,反之,若该条边的两个顶点已落在同一棵树上,则不可取,而应该取下一条权值最小的边再试之。依次类推,直到森林中只有一棵树,也即子图中含有 n-1 条边为止。3.设计将原图中所有的边按权值从小到大排序从权值最小的开始,添加边AD到集合{AD}重
2021-03-14 16:18:41 451
原创 采用Prim算法构造最小生成树
1.问题采用Prim算法构造最小生成树2.解析Prim算法基本思想: 假设G=(V,E)是连通的,TE是G上最小生成树中边的集合。算法从U={u0}(u0∈V)、TE={}开始。重复执行下列操作:在所有u∈U,v∈V-U的边(u,v)∈E中找一条权值最小的边(u0,v0)并入集合TE中,同时v0并入U,直到V=U为止。此时,TE中必有n-1条边,T=(V,TE)为G的最小生成树。Prim算法的核心: 始终保持TE中的边集构成一棵生成树。3.设计算法:Prim输人:无向连通网G=(V,E
2021-03-14 15:25:28 506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人