<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[J_2333的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/J_2333</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; J_2333]]></copyright><item><title><![CDATA[生物地理学优化（BBO）算法]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/106650117</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/106650117</guid><author>J_2333</author><pubDate>Tue, 09 Jun 2020 20:23:48 +0800</pubDate><description><![CDATA[生物地理学优化算法(BBO)是由Dan Simon于2008年提出的一种基于生物地理学理论发展起来的算法。与其他智能算法类似，BBO也是一种基于种群优化的算法，不过它将种群中的每个解看成一个栖息地，将解的适应度看成栖息地的HSI，解的每个分量则是一个SIV，通过模拟生物地理学中的迁移和变异过程来对种群进行不断演化，从而求解优化问题。BBO算法的两个主要操作就是迁移操作和变异操作。
一、迁移操作
BBO算法将优化问题的每个解看成一个栖息地。解的适应度越高，表示栖息地拥有的物种越多，其迁出率就越高、迁入率就越低]]></description><category></category></item><item><title><![CDATA[图的m着色问题]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/106482142</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/106482142</guid><author>J_2333</author><pubDate>Mon, 01 Jun 2020 21:26:26 +0800</pubDate><description><![CDATA[1. 问题

2. 解析

3. 设计

4. 分析

5. 源码
 https://github.com/Wang-2333/MapDraw/blob/master/图的m着色问题.cpp

]]></description><category></category></item><item><title><![CDATA[最优前缀码]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/106225185</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/106225185</guid><author>J_2333</author><pubDate>Tue, 19 May 2020 22:55:46 +0800</pubDate><description><![CDATA[1. 问题

2. 解析
构造最优前缀码的贪心算法就是哈夫曼算法。
构建哈夫曼树的过程：
1.按照贪心算法每次找权值最小（即值最小）的两个数，构成孩子结点，并将这两个数据排除出这一堆数据之外。
2.由于哈弗曼树的数据全在叶子结点，所以把上述权值最小的两个数据构成父结点，然后再将父结点的权值放回上述数据，返回第一步，重复上述过程，直到所有的数据都变成哈夫曼树的叶子结点。
实例：{5, 5, 10, 10, 10, 15, 20, 25}




引理1：C是字符集，∀c∈C，f©为频率，x,y∈C，f(x),]]></description><category></category></item><item><title><![CDATA[相容问题——贪心算法]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/105941696</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/105941696</guid><author>J_2333</author><pubDate>Tue, 05 May 2020 23:50:31 +0800</pubDate><description><![CDATA[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不相容...]]></description><category></category></item><item><title><![CDATA[LCS算法——最长公共子序列]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/105871747</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/105871747</guid><author>J_2333</author><pubDate>Thu, 30 Apr 2020 23:23:53 +0800</pubDate><description><![CDATA[1. 问题

2. 解析







3. 设计

4. 分析
O(mn)
5. 源码
https://github.com/Wang-2333/LCS/blob/master/LCS.cpp

]]></description><category></category></item><item><title><![CDATA[矩阵链乘法]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/105669741</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/105669741</guid><author>J_2333</author><pubDate>Tue, 21 Apr 2020 22:40:15 +0800</pubDate><description><![CDATA[1. 问题

2. 解析






3. 设计

4. 分析
T(n)=O(n3)
5. 源码
https://github.com/Wang-2333/Matrix-chainMultiplication/blob/master/Matrix-chainMultiplication.cpp

]]></description><category></category></item><item><title><![CDATA[投资问题]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/105501567</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/105501567</guid><author>J_2333</author><pubDate>Tue, 14 Apr 2020 00:28:20 +0800</pubDate><description><![CDATA[1. 问题

2. 解析





3. 设计


4. 分析

5. 源码
https://github.com/Wang-2333/InvestProblem/blob/master/InvestProblem.cpp添加链接描述

]]></description><category></category></item><item><title><![CDATA[选第k小元素——特定分治策略]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/105352684</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/105352684</guid><author>J_2333</author><pubDate>Mon, 06 Apr 2020 22:04:16 +0800</pubDate><description><![CDATA[1. 问题
利用分治策略，在n个不同元素中找出第k个最小元素
2. 解析

3. 设计

4. 分析
复杂度为：O(n)
5. 源码
https://github.com/Wang-2333/SelectKth/blob/master/SelectKth/SelectKth.cpp

...]]></description><category></category></item><item><title><![CDATA[最近对问题]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/105210912</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/105210912</guid><author>J_2333</author><pubDate>Mon, 30 Mar 2020 22:56:41 +0800</pubDate><description><![CDATA[1. 问题
n个点在公共空间中，求出所有点对的欧几里得距离最小的点对。
2. 解析
①分解
对所有的点按照x坐标（或者y）从小到大排序（排序方法时间复杂度O(nlogn)。根据下标进行分割，使得点集分为两个集合。
②解决
递归的寻找两个集合中的最近点对。取两个集合最近点对中的最小值min(dis[left]，dis[right])。
③合并
最近距离不一定存在于两个集合中，可能一个点在集合A，一个...]]></description><category></category></item><item><title><![CDATA[二分归并排序]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/105039065</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/105039065</guid><author>J_2333</author><pubDate>Sun, 22 Mar 2020 23:47:15 +0800</pubDate><description><![CDATA[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，陆续...]]></description><category></category></item><item><title><![CDATA[检索-二分查找]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104899163</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104899163</guid><author>J_2333</author><pubDate>Mon, 16 Mar 2020 14:51:30 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[检索-插值查找]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104888493</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104888493</guid><author>J_2333</author><pubDate>Sun, 15 Mar 2020 22:40:14 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[Visual Studio2019配置OpenGL]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104781124</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104781124</guid><author>J_2333</author><pubDate>Tue, 10 Mar 2020 19:42:21 +0800</pubDate><description><![CDATA[一、安装c++开发组件和NuGet包管理器
1、打开Visual Studio Installer软件进行修改：

2、点击修改：

3、勾选C++的桌面开发：

4、勾选NuGet包管理器：

二、配置OpenGL
下载地址：https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
网盘链接：https://pan.ba...]]></description><category></category></item><item><title><![CDATA[最短路径-Dijkstra算法]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104759705</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104759705</guid><author>J_2333</author><pubDate>Mon, 09 Mar 2020 19:58:27 +0800</pubDate><description><![CDATA[1. 问题
给定带权有向图G＝(V, E)，用Dijkstra算法求顶点a到顶点h的最短路径。
2. 解析

使用二维数组e来存储顶点之间边的关系，初始值如下：

再用一个一维数组 dis 来存储 a点到其余各个点的初始路程，我们可以称 dis 数组为“距离表”，如下：

既然是求a点到其余各个点的最短路程，那就先找一个离a点最近的点。通过数组 dis 可知当前离a点最近是b点。当选择了b点后，d...]]></description><category></category></item><item><title><![CDATA[最短路径-Floyd算法]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104743423</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104743423</guid><author>J_2333</author><pubDate>Sun, 08 Mar 2020 23:21:45 +0800</pubDate><description><![CDATA[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]...]]></description><category></category></item><item><title><![CDATA[MySQL详细安装教程]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104686740</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104686740</guid><author>J_2333</author><pubDate>Thu, 05 Mar 2020 23:19:14 +0800</pubDate><description><![CDATA[一．下载MySQL
首先，下载MySQL安装包
官网    https://www.mysql.com/
网盘链接：https://pan.baidu.com/s/1M46ZY1ftenN8SbBZyA_ShA  提取码：4ki7
点击进入的首页如下：

点击DOWNLOADS，然后将页面拉到中间部分，然后点击MySQL Community（GPL） Downloads如下图：

点击MySQL ...]]></description><category></category></item><item><title><![CDATA[最小生成树-Kruskal算法]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104619396</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104619396</guid><author>J_2333</author><pubDate>Mon, 02 Mar 2020 20:56:10 +0800</pubDate><description><![CDATA[1.问题
在一个连通无向图G=(V, E)中，对于其中的每条边(u,v)∈E，赋予其权重w(u, v)，若存在 T 为 E 的子集（即）且为无循环图，使得的 w(T) 最小，则此 T 为 G 的最小生成树。
2.解析

以上图为例具体计算步骤如下：

3.设计
for (int i = 1; i &lt;= m; i++)    
{        
      int u = edge[i].u...]]></description><category></category></item><item><title><![CDATA[最小生成树-Prim算法]]></title><link>https://blog.youkuaiyun.com/J_2333/article/details/104600443</link><guid>https://blog.youkuaiyun.com/J_2333/article/details/104600443</guid><author>J_2333</author><pubDate>Sun, 01 Mar 2020 21:38:33 +0800</pubDate><description><![CDATA[1.问题
在一个连通无向图G=(V, E)中，对于其中的每条边(u,v)∈E，赋予其权重w(u, v)，若存在 T 为 E 的子集（即）且为无循环图，使得的 w(T) 最小，则此 T 为 G 的最小生成树。
2.解析

以上图为例具体计算步骤如下：
①图中有6个顶点，任意选择一个顶点作为起始点，一般都选择v1作为起始点。现在我们设集合U为当前所找到最小生成树的顶点，TE集合为边，则：U={v1}；...]]></description><category></category></item></channel></rss>