智能算法
文章平均质量分 79
We_are_family678
这个作者很懒,什么都没留下…
展开
-
求两个数的最大公约数
要求方法传入两个正整型参数,返回值就是它们的最大公约数,尽可能保证性能方法一:辗转相除法辗转相除法又叫欧几里得算法,是古希腊数学家欧几里发明的,目的是求出两个正整数的最大公约数。它是已知最古老的算法,其可追溯至公元前300多年前。这个算法基于一个定理:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数,比如10和25,25除以10商2余5,那么10和25的最...原创 2018-04-08 19:49:44 · 389 阅读 · 0 评论 -
马踏棋盘的实现
(一)马踏棋盘经典算法描述: (1)马踏棋盘是经典的程序设计问题之一,主要的解决方案有两种:一种是基于深度优先搜索的方法,另一种是基于贪婪算法的方法。第一种基于深度优先搜索的方法是比较常用的算法,深度优先搜索算法也是数据结构中的经典算法之一,主要是采用递归的思想,一级一级的寻找,遍历出所有的结果,最后找到合适的解。而基于贪婪的算法则是制定贪心准则,一旦设定不能修改,他只关心局部最优解,但不一定能...原创 2018-04-12 12:20:44 · 851 阅读 · 0 评论 -
字典序算法
我们先看一个例子。示例: 1 2 3的全排列如下:1 2 3 , 1 3 2 , 2 1 3 , 2 3 1 , 3 1 2 , 3 2 1我们这里是通过字典序法找出来的。那么什么是字典序法呢?从上面的全排列也可以看出来了,从左往右依次增大,对这就是字典序法。可是如何用算法来实现字典序法全排列呢?我们再来看一段文字描述:(用字典序法找124653的下一个排列)你主要看红色字体部分就行了,这就是步骤...原创 2018-04-11 21:05:03 · 226 阅读 · 0 评论 -
C语言实现插入排序
插入排序是排序算法的一种,它不改变原有的序列(数组),而是创建一个新的序列,在新序列上进行操作。这里以从小到大排序为例进行讲解。基本思想及举例说明插入排序的基本思想是,将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。在实际使用中,通常是排序整个无序数组,所以把这个无序数组分为两部分排序好的子数组和待插入的元素。第一轮时,将第一个元素作为...原创 2018-04-11 21:00:50 · 361 阅读 · 0 评论 -
Evolutionary Computing: 遗传算法
一、遗传算法的应用函数优化(遗传算法的经典应用领域);组合优化(实践证明,遗传算法对于组合优化中的NP完全问题,如0-1背包问题,TSP等,非常有效);自动控制;机器人智能控制;组合图像处理和模式识别;人工生命;遗传程序设计; 二、遗传学基本概念与术语基因型(genotype):性状染色体的内部表现;表现型(phenotype):染色体决定性状的外部表现,或者说,根据基因型形成的个体;进化(ev...原创 2018-04-17 10:23:40 · 956 阅读 · 0 评论 -
什么是P问题、NP问题和NPC问题
什么是P问题、NP问题和NPC问题 这或许是众多OIer最大的误区之一。 你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是...原创 2018-04-16 11:19:41 · 490 阅读 · 0 评论 -
通俗理解遗传算法
1)初识遗传算法 遗传算法,模拟达尔文进化论的自然选择和遗传学机理的生物进化过程的计算模型,一种选择不断选择优良个体的算法。谈到遗传,想想自然界动物遗传是怎么来的,自然主要过程包括染色体的选择,交叉,变异(不明白这个的可以去看看生物学),这些操作后,保证了以后的个体基本上是最优的,那么以后再继续这样下去就可以一直最优了。(2)解决的问题 先说说自己要解决的问题吧。遗传算...原创 2018-03-27 16:57:57 · 526 阅读 · 1 评论 -
粒子群算法的matlab实现
粒子群算法(Particle Swarm Optimization,PSO)是20世纪90年代兴起的一门学科,因其概念简明、实现方便、收敛速度快而为人所知。粒子群算法的基本思想是模拟鸟群随机搜寻食物的捕食行为,鸟群通过自身经验和种群之间的交流调整自己的搜寻路径,从而找到食物最多的地点。其中每只鸟的位置/路径则为自变量组合,每次到达的地点的食物密度即函数值。每次搜寻都会根据自身经验(自身历史搜寻的最...原创 2018-03-27 16:23:24 · 2532 阅读 · 1 评论 -
快速排序算法
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大...原创 2018-04-08 20:57:15 · 176 阅读 · 0 评论 -
希尔排序算法
希尔排序的基本思想是:先将整个待排序列分割成若干子序列分别进行进行直接插入排序,等到整个待排序列基本有序时,再对全体记录依次进行直接插入排序。希尔排序也叫缩小增量排序,是1959年由D.L.Shell提出来的。希尔排序的具体实现方法和步骤:a、选择一个步长序列d1,d2,d3,...,dk,其中,di > dj,dk = 1;b、按步长序列个数K对序列进行K趟排序c、每趟排序,根据对应的步长...原创 2018-04-07 11:16:55 · 305 阅读 · 0 评论