- 博客(18)
- 收藏
- 关注
原创 生物地理学优化(BBO)算法
生物地理学优化算法(BBO)是由Dan Simon于2008年提出的一种基于生物地理学理论发展起来的算法。与其他智能算法类似,BBO也是一种基于种群优化的算法,不过它将种群中的每个解看成一个栖息地,将解的适应度看成栖息地的HSI,解的每个分量则是一个SIV,通过模拟生物地理学中的迁移和变异过程来对种群进行不断演化,从而求解优化问题。BBO算法的两个主要操作就是迁移操作和变异操作。 一、迁移操作 BBO算法将优化问题的每个解看成一个栖息地。解的适应度越高,表示栖息地拥有的物种越多,其迁出率就越高、迁入率就越低
2020-06-09 20:23:48
4269
1
原创 图的m着色问题
1. 问题 2. 解析 3. 设计 4. 分析 5. 源码 https://github.com/Wang-2333/MapDraw/blob/master/图的m着色问题.cpp
2020-06-01 21:26:26
261
原创 最优前缀码
1. 问题 2. 解析 构造最优前缀码的贪心算法就是哈夫曼算法。 构建哈夫曼树的过程: 1.按照贪心算法每次找权值最小(即值最小)的两个数,构成孩子结点,并将这两个数据排除出这一堆数据之外。 2.由于哈弗曼树的数据全在叶子结点,所以把上述权值最小的两个数据构成父结点,然后再将父结点的权值放回上述数据,返回第一步,重复上述过程,直到所有的数据都变成哈夫曼树的叶子结点。 实例:{5, 5, 10, 10, 10, 15, 20, 25} 引理1:C是字符集,∀c∈C,f©为频率,x,y∈C,f(x),
2020-05-19 22:55:46
2458
原创 相容问题——贪心算法
1. 问题 设S={1,2,…,n}为活动的合集,si和fi分别为活动i的开始和截止时间,i=1,2,…,n,活动i和活动j相容,求S最大的两两相容的活动子集A。 2. 解析 方法:把活动按照截止时间从小到大排序,使得f1≤f2≤…≤fn,然后从前向后挑选,只要与前面选的内容相容,就可以把该项活动选入A。 实例:截止时间已经排序 k=3 (1) 选择活动1:截止时间最早:活动2、3与活动1不相容...
2020-05-05 23:50:31
464
原创 LCS算法——最长公共子序列
1. 问题 2. 解析 3. 设计 4. 分析 O(mn) 5. 源码 https://github.com/Wang-2333/LCS/blob/master/LCS.cpp
2020-04-30 23:23:53
238
原创 矩阵链乘法
1. 问题 2. 解析 3. 设计 4. 分析 T(n)=O(n3) 5. 源码 https://github.com/Wang-2333/Matrix-chainMultiplication/blob/master/Matrix-chainMultiplication.cpp
2020-04-21 22:40:15
235
原创 投资问题
1. 问题 2. 解析 3. 设计 4. 分析 5. 源码 https://github.com/Wang-2333/InvestProblem/blob/master/InvestProblem.cpp添加链接描述
2020-04-14 00:28:20
265
原创 选第k小元素——特定分治策略
1. 问题 利用分治策略,在n个不同元素中找出第k个最小元素 2. 解析 3. 设计 4. 分析 复杂度为:O(n) 5. 源码 https://github.com/Wang-2333/SelectKth/blob/master/SelectKth/SelectKth.cpp ...
2020-04-06 22:04:16
319
原创 最近对问题
1. 问题 n个点在公共空间中,求出所有点对的欧几里得距离最小的点对。 2. 解析 ①分解 对所有的点按照x坐标(或者y)从小到大排序(排序方法时间复杂度O(nlogn)。根据下标进行分割,使得点集分为两个集合。 ②解决 递归的寻找两个集合中的最近点对。取两个集合最近点对中的最小值min(dis[left],dis[right])。 ③合并 最近距离不一定存在于两个集合中,可能一个点在集合A,一个...
2020-03-30 22:56:41
309
原创 二分归并排序
1. 问题 对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k。 2. 解析 二分归并排序对待排序数组先划分后归并,以数组49,38,65,97,76,13,27,57为例,在二分归并中,需要进行如下顺序: 3. 设计 ①划分将原问题归结为规模为n/2的2个子问题; ②继续划分,将原问题归结为规模为n/4的4个子问题。 ③继续……当子问题规模为1时,划分结束; ④从规模1到n/2,陆续...
2020-03-22 23:47:15
787
原创 检索-二分查找
1. 问题 在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0. 2. 解析 以下面一数组T为例:设value=6, 3. 设计 4. 分析 时间复杂度:O(log2n) 5. 源码 https://github.com/Wang-2333/BinarySearch/blob/master/BinarySearch/BinarySea...
2020-03-16 14:51:30
184
原创 检索-插值查找
1. 问题 在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0. 2. 解析 以下面一数组T为例: 假设在数组T中查找数字6,则经过的步骤如下:①InsertionSearch(T,6,0,24)→low=0,high=24,mid=0 ②InsertionSearch(T,6,1,24)→low=1,high=24,mid=1 ③Inserti...
2020-03-15 22:40:14
218
原创 Visual Studio2019配置OpenGL
一、安装c++开发组件和NuGet包管理器 1、打开Visual Studio Installer软件进行修改: 2、点击修改: 3、勾选C++的桌面开发: 4、勾选NuGet包管理器: 二、配置OpenGL 下载地址:https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 网盘链接:https://pan.ba...
2020-03-10 19:42:21
4654
3
原创 最短路径-Dijkstra算法
1. 问题 给定带权有向图G=(V, E),用Dijkstra算法求顶点a到顶点h的最短路径。 2. 解析 使用二维数组e来存储顶点之间边的关系,初始值如下: 再用一个一维数组 dis 来存储 a点到其余各个点的初始路程,我们可以称 dis 数组为“距离表”,如下: 既然是求a点到其余各个点的最短路程,那就先找一个离a点最近的点。通过数组 dis 可知当前离a点最近是b点。当选择了b点后,d...
2020-03-09 19:58:27
216
原创 最短路径-Floyd算法
1. 问题 给定带权有向图G=(V, E),对任意顶点vi,vj∈V(i≠j),求顶点vi到顶点vj的最短路径。 2. 解析 ①首先,先将图中的数据放入矩阵中存储。比如1→2的距离是2,则设e[1][2]的值为2,2→4无法完成,则设e[2][4]的值为∞,另约定点到自己的距离为0,即e[1][1]的值为0,以此类推。具体如下: ②假设只允许经过1号点,只需要判断e[i][1]+e[i][j]...
2020-03-08 23:21:45
415
原创 MySQL详细安装教程
一.下载MySQL 首先,下载MySQL安装包 官网 https://www.mysql.com/ 网盘链接:https://pan.baidu.com/s/1M46ZY1ftenN8SbBZyA_ShA 提取码:4ki7 点击进入的首页如下: 点击DOWNLOADS,然后将页面拉到中间部分,然后点击MySQL Community(GPL) Downloads如下图: 点击MySQL ...
2020-03-05 23:19:14
447
原创 最小生成树-Kruskal算法
1.问题 在一个连通无向图G=(V, E)中,对于其中的每条边(u,v)∈E,赋予其权重w(u, v),若存在 T 为 E 的子集(即)且为无循环图,使得的 w(T) 最小,则此 T 为 G 的最小生成树。 2.解析 以上图为例具体计算步骤如下: 3.设计 for (int i = 1; i <= m; i++) { int u = edge[i].u...
2020-03-02 20:56:10
317
原创 最小生成树-Prim算法
1.问题 在一个连通无向图G=(V, E)中,对于其中的每条边(u,v)∈E,赋予其权重w(u, v),若存在 T 为 E 的子集(即)且为无循环图,使得的 w(T) 最小,则此 T 为 G 的最小生成树。 2.解析 以上图为例具体计算步骤如下: ①图中有6个顶点,任意选择一个顶点作为起始点,一般都选择v1作为起始点。现在我们设集合U为当前所找到最小生成树的顶点,TE集合为边,则:U={v1};...
2020-03-01 21:38:33
1231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅