算法
对算法图解一书的算法进行整理
Gaodes
成功来自点滴的坚持
展开
-
算法之二分查找法
【算法解释】:它也被称为折半査找,其优点是查找速度快,缺点是要求所要査找的数据必须是有序序列。【引入问题】:假如现在我买了一件衣服,你非常好奇的问我多少钱,我说不超过500元。你还是很好奇,我让你接着猜,你才怎么猜呢?答案肯定是你每次猜最中间的数,第一次猜250,假如我有告诉你猜高了,你肯定会在小于250的部分继续除以2进行猜值,这就引入了二分查找的算法。【查找过程】:假设表中元素是按升序...原创 2019-07-14 15:25:27 · 459 阅读 · 0 评论 -
算法之选择排序法
【算法解释】:选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。【排序过程】选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来...原创 2019-07-14 15:34:08 · 343 阅读 · 0 评论 -
算法之快速排序法
【算法解释】:快速排序(Quicksort)是对冒泡排序的一种改进。【基本思想】:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。【基线条件】:也就是递归退出条件,当start<end的时候退出递归。【程序设计】:void ...原创 2019-07-14 15:41:55 · 226 阅读 · 0 评论 -
算法之哈希查找法
【算法解释】:哈希查找法又称为散列表【引入问题】:假设一家杂物店,有顾客来买东西,你得从本子中找到价格。但是随着商品的增加,使用二分法,无法做到顾客想问任何商品的价格,就立即回答。这时候就需要用到哈希表。【解决冲突】:散列是能一种快速实现访问的存储方式。通常作为检索部分的数据项是整形或者字符串,当是字符串时,字符串的数量要远远大于数组的长度,这时候就会有多个字符串映射到一个存储位置的情况,...原创 2019-07-14 15:51:38 · 824 阅读 · 0 评论 -
算法之广度优先算法
【算法定义】广度优先算法又称宽度优先搜索,是一种简便的图的搜索算法之一。【算法图示】搜索方式如下图,直到搜不到点为止。【实际运用】实际运用在最小路径的求法上,主要应用在走迷宫上面。【引入问题】求下图的最小路径【程序设计】/******************************************************************...原创 2019-08-25 17:25:18 · 885 阅读 · 0 评论 -
算法之狄克斯特拉算法
【算法定义】是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪克斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。【算法图示】【程序设计】/********************************************************************************* *Function: Di...原创 2019-08-25 17:41:56 · 273 阅读 · 0 评论 -
算法之贪婪算法
【算法定义】贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,只做出在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。【算法图示】使用数学模型来描述问题,把求解的问题分解成若干个小问题。1)活动选择问题这是...原创 2019-08-25 17:45:44 · 238 阅读 · 0 评论 -
算法之动态规划
【算法定义】动态规划是用于解决最优化问题的一种途径,方法,而不是一种特殊的算法。【算法图示】①背包问题动态规划算法常运用于背包问题,假设你是一个商人,背着一个4磅的背包,你想装进的商品有如下三件,音响(3000元)重4磅,笔记本电脑(2000元)重3磅,吉他(1500元)重1磅,为了让背包里装的价值最高,该如何选择商品?如图所示,是通过动态规划计算出来的结果,各列列头表示1,2,3...原创 2019-08-25 17:53:46 · 256 阅读 · 0 评论 -
算法之K最近邻算法
【算法定义】K最近邻(K-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。【算法图示】有两个水果,一个是橙子,一个是柚子,让机器判断哪个是橙子,哪个是柚子?一般而言,柚子更大,更红。抽样了一些数据,描述如下:现...原创 2019-08-25 17:58:04 · 559 阅读 · 0 评论