自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 macOS给anaconda设置环境变量

macOS使用常识

2022-03-01 20:43:13 6045 1

原创 2021-06-06

1.问题图的m着色问题。给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。2.解析3.设计4. 分析5.源码[github源码地址]https://github.com/henryzhang6686/myAlgorithmCode/blob/main/work12...

2021-06-06 16:28:06 95

原创 最优前缀码

1.问题最优前缀编码问题2.解析3.设计void CreateHuffmanTree(HuffmanTree T){//构造哈夫曼树,T[m-1]为其根结点int i,p1,p2;InitHuffmanTree(T); //将T初始化T[0].weight=5; T[1].weight=5; T[2].weight=10; T[3].weight=10; T[4].weight=10; T[5].weight=15; T[6].weight=20; T[7].we

2021-05-27 22:41:19 138

原创 背包问题(0-1背包,贪心算法证明)

2021-05-17 16:05:56 597

原创 2021-05-13

“LCS算法和背包算法,特别要求举例时采用不同于讲义的数据进行推导。”LCS算法:X = <A,B,C,B,D,A,B>Y = <B,D,C,A,B,A>步骤一、(1)i=11)X.A<>Y.B : C[1,1]=max(C[1,0], C[0,1])= max(0, 0)=0, 删除 y2)X.A<>Y.D : C[1,2]=max(C[1,1], C[0,2])= max(0, 0)=0, 删除 y3)X.A<&gt

2021-05-13 22:16:59 57

原创 矩阵链乘法

1.问题“矩阵链乘法,特别要求举例时采用不同于讲义的数据进行推导。”2.解析3.设计示例:P=<20,15,10,25,5,40>, n=5A1:2015A2:1510A3:1025A4:255A5:5*40(1)r=1l m[1,1]=0;l m[2,2]=0;l m[3,3]=0;l m[4,4]=0;l m[5,5]=0;(2)r=2 ,i=1,2,3,4; j=2,3,4,5;l m[1,2]=201510=3000;l m[2,3]=1

2021-05-01 18:18:33 90

原创 动态规划(投资问题)

1.问题“7.3投资问题,参考讲义的样例数据”2.解析3.设计4. 分析5.源码[github源码地址]https://github.com/henryzhang6686/myAlgorithmCode

2021-04-26 21:29:21 133

原创 选第k小元素复杂度临近O(n)算法

1.问题n(1≤n≤100)个正整数(无序的)中,找出第k(k≤n)小的数。注意,第k小的数意味着从小到大排在第k位置的数。2.解析3.设计int select(int a[],int start,int end,int k){int m = 0;//记录有几组,每五个为一组;int s[MAX];//用于保存每组的中位数;int i = start;while(i <= end){//对数组进行分组int iend = i + 4;if(iend >= end){ie

2021-04-19 22:09:53 239

原创 最近点对问题

1.问题在二维平面上的n个点中,找出最接近的一对点2.解析已知集合S中有n个点,使用分治法的思想就是将S进行拆分,分为2部分求最近点对。算法每次选择一条垂线L,将S拆分左右两部分为SL和SR,( L一般取点集S中所有点的中间点的x坐标来划分,这样可以保证SL和SR中的点数目各为n/2 否则以其他方式划分S,有可能导致SL和SR中点数目一个为1,一个为n-1,不利于算法效率,要尽量保持树的平衡性 )依次找出这两部分中的最小点对距离:δL和δR,记SL和SR中最小点对距离δ = min{δL,δR}

2021-04-19 12:56:34 307

原创 二分归并排序

1.问题二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k2.解析二分归并排序分为两步:二分+归并,体现了分治思想,即先使每个子序列有序,再使其合成的序列有序,因此为实现这个算法需要写两个函数,用于二分和归并。3.设计核心代码设计:(1)void mergeSort( int a[ ], int left, int right, int temp[ ] ){if (left < right) { &n

2021-03-29 16:26:17 484

原创 查找算法

1.问题写出两种检索算法:在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0.按实验模板编写,“分析”部分仅给出复杂度结果即可。2.解析检索算法,也称查找算法,在这里我介绍两种,一种是顺序查找法,一种是二分查找。顺序查找的思路很简单,就是暴力地遍历所有数据,一个一个比较会不会相同。二分查找的思路是设置三个标记点,L记录第一个数据的下标,R记录最后一个数据的下标,因为数组是有序的,所以,每次只要找到中间的下标的值,并且判断,就可以排除一半的数据,非

2021-03-22 22:21:17 64

原创 2021-03-17

1.问题用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵),按实验报告模板编写算法。2.解析任意节点i到j的最短路径两种可能:直接从i到j;从i经过若干个节点k到j。map(i,j)表示节点i到j最短路径的距离,对于每一个节点k,检查map(i,k)+map(k,j)小于map(i,j),如果成立,map(i,j) = map(i,k)+map(k,j);遍历每个k,每次更新的是除第k行和第k列的数。三重循环后,就得到了最短距离矩

2021-03-17 21:27:01 72

原创 2021-03-14

1.问题举一个实例,画出采用Kruskal算法构造最小生成树的过程,并按实验报告模板编写算法。2.解析克鲁斯卡尔算法的基本思想是以边为主导地位,始终选择当前可用(所选的边不能构成回路)的最小权植边。所以Kruskal算法的第一步是给所有的边按照从小到大的顺序排序。这一步可以直接使用库函数qsort或者sort。接下来从小到大依次考察每一条边(u,v)。具体实现过程如下:<1> 设一个有n个顶点的连通网络为G(V,E),最初先构造一个只有n个顶点,没有边的非连通图T={V,空},图中每

2021-03-14 00:28:43 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除