
#算法图解#
南方划水的banana
这个作者很懒,什么都没留下…
展开
-
图-邻接矩阵
自然界中有很多事物可以用图来表示其间的关系,在电脑中可以通过处理图来解决实际问题,但是问题来了,如何将实际问题转化为图可以表示的形式?如何在计算机中存储图,有几种方式?如果图只是体现了节点与节点间是否有关系,那么如果节点本身的内容就很重要,怎么存储?第一个问题-图的输入要想在计算机中创建一个图的数据结构,就得先把现有的图输入进去,那么现有的图用现在的按行输入的方式怎么表示呢?下面是POJ中2原创 2017-09-24 21:29:35 · 1241 阅读 · 0 评论 -
大O表示法及旅行者问题
算法的运行时间运行时间增速 不同算法随规模的增大而增大的速度不同我们需要比较不同算法的运行时间的增速大O表示法【类比数据结构中的时间复杂度】比较操作数【其体现了算法运行时间的增速】这种表示法体现了算法在最糟情况下的运行时间 【这不就是时间复杂度吗】在不同算法比较时可以看出量级的差异,以选择不同的算法,但是针对一个算法求出增速或许可以根据其增速特性,添加不同的操作常见的算法增速原创 2017-09-10 15:47:12 · 691 阅读 · 1 评论 -
选择排序
先理解一下数组和链表数组与链表都存储在内存空间数组需要一个连续的且能装下所有元素的空间 当数组元素增加时,需要考虑所在空间的的前后是否还有空间可以放下新加入的元素 当然,在现在内存空间足够的情况下,大可不必考虑这些问题��,不过在嵌入式系统中依然需要注意内存的使用链表不太矫情,不需要所有的元素都抱在一起,只要告诉他前一个和后一个元素在哪就行,他就可以安心的独处了 不过要每原创 2017-09-10 16:18:22 · 329 阅读 · 0 评论 -
快速排序(分而治之策略及C语言实现)
提出的问题分而治之的策略重要的分而治之算法快速排序问题要在一个长为x,宽为y的长方形中画出均匀且大小相等的正方形 那么正方形的边长为多少(1)可以看出正方形的边长需要是x和y的最大公约数 如何求最大公约数? 找查约数法: 分别找出两个数的所有约数,再找出两个数的所有公约数,最大的那个就是最大公约数(最好别用,太烦人,容易出错)原创 2017-09-12 20:49:42 · 1928 阅读 · 0 评论 -
贪婪策略
问题如何处理不可能完成的任务(没有快速算法的问题,NP完全问题) 那么什么是NP完全问题近似算法,找NP完全问题的近似解贪婪策略贪婪算法对于一个问题,如果可以分为多个问题,那么对每个问题都采取局部最优解,那么一定会得到全局最优解(是这样吗?) 说易于实现,怎么个易于实现法? 解释一:直接去解决局部问题,选局部的最优解,而不去考虑对全局的影响,因为你认为局部取最优原创 2017-09-15 21:28:58 · 6128 阅读 · 0 评论 -
广度优先搜索
问题自然界中很多的事物之间是呈现为网状关系的,而如何处理这个网络中的问题呢? 比如如何知道网络中的一个节点有没有可能能连接到另一个节点? 一个节点到另一个节点的最短距离或者最长距离? 比如计算机网络中一个路由节点怎么找到另一个指定的路由节点? 怎么样效率最高,时间最短,对整个网络的影响最小? 最短路径问题应该是图中出现较多的问题 那么如原创 2017-09-15 22:39:36 · 368 阅读 · 0 评论 -
动态规划
这篇只是一些思考,没有动态规划的例子或者实现。 贪婪策略在解决计算规模非常大的NP完全问题时可以一试,虽然求出的是近似解,但这却是在计算能力不足或者允许时限内的最优方案了,不过如何找到最优解呢? 贪婪策略是取得局部的最优解,即部分的利益或效果最大化,以求得全局或最终结果的最优解(即近似最优的解决方案), 对于要解决的问题,该问题要由一些元素组成,每个元素都对最终结果有不同的影原创 2017-09-16 10:13:28 · 466 阅读 · 0 评论 -
K最近邻算法(介绍)
问题用K最近邻算法创建分类系统学习特征抽取学习回归,即预测数值学习K最近邻算法的应用案例和局限性K最近邻(k-nearest neighbours, KNN)算法K最近邻算法是指在一个坐标系中(前提是把元素放入坐标系【So,问题来了,怎么把他们放入坐标系?他们在坐标系的位置怎么确定?】),其中一个点的特性或者数值可以由离他最近的几个点求得,(原理是因为,他们所处的位置差不多,其会具有相当大的原创 2017-09-16 11:08:06 · 2474 阅读 · 0 评论 -
n重循环的优化(二分搜索)
这篇内容不多,质量不大高 循环在针对一些问题时,的确是很快能想到的方法,一般也是比较暴力的一个个的尝试,而这不就是计算机擅长的事吗?不过有时规模非常大时,计算机也需要一些时间去计算,对于一些密码或者以指数规模增长的问题(或者NP完全问题),只是用循环一个个去试,有时并不一定能得到想要的结果,反而看起来还笨一些 那么有两种选择: 一是对现有的循环进行优化,降低它的时间复杂度原创 2017-09-17 20:08:59 · 617 阅读 · 0 评论 -
二分查找算法及分析
二分查找 一般而言,对于包含n个元素的列表,用二分查找最多需要log2n步,而简单查找最多需要n步。其实如果有m个元素 找出一个数n 使得m除以2的n次方小于等于1 那么需要判断的次数就是n+1算法实现一 得数组长度length 判断num与数组的length/2的大小 如果大于length/原创 2017-09-09 11:35:55 · 719 阅读 · 0 评论