算法小结
文章平均质量分 87
flying_music
十年C++ 精通if-else编程
展开
-
贪婪算法小结
背景介绍:贪婪算法可以说是离我们生活最近的一种算法,人总是贪婪的嘛,所以这种算法的设计是很符合人性的。之所以这么说,是因为人们会在生活中有意无意的使用贪婪算法来解决问题。最常见的就是找零钱了,每个人都没学过该怎么找零钱,但在所有面额的钱都充足时,每个人都会找出同样组合来凑够需要的钱。其实这里面就是贪婪算法在起作用。设计思路:贪婪法的设计思路可以从两方面来理解,即直观上和数学上。从直观上理解贪婪原创 2015-11-24 22:06:57 · 10933 阅读 · 1 评论 -
动态规划与贪心算法的区别
本来这次是该总结动态规划的,但在学习过程中发现动态规划和上一节的贪心算法有很大联系,而在算法设计过程中主要是对两种算法的选择,所以决定这次以对比的方式做总结,既可以更深入地了解动态规划,又可以对贪心算法有个新的认识。背景介绍:这两种算法都是选择性算法,就是从一个候选集合中选择适当的元素加入解集合。原创 2015-12-11 18:34:22 · 13674 阅读 · 2 评论 -
递归算法小结
写下这个题目,心里还是有点儿发虚的,因为自己作为一个算法新手,在这个地方大谈递归算法实在是有点儿不知道天高地厚的感觉。先说这篇文章的性质以及适合人群,这篇文章是个人学习算法过程中的一个总结,没有太多高深的东西,但也尽量能够做到生动具体并对递归的精髓有所触及。如果你是算法大神,那恐怕会让你失望,如果你也是刚刚接触递归算法,倒是可以读一读,我保证是不会有坏处的。背景介绍:递归是一种基于归纳思想原创 2015-11-11 11:33:26 · 4287 阅读 · 0 评论 -
分治法小结
这几天看完了分治算法,今天来做一个总结。算法背景:分治法是算法学习中遇到的第一个算法设计思路(递归其实更偏向于一种编程技巧而并非单独的算法),但算法并不像刚接触算法的人该学习的内容。说白了,算法还是比较难的。分治法是一种说起来简单做起来难的算法。说起来简单是因为算法的设计思路是完全符合人的思维过程的:分而治之嘛,在面向过程的程序设计中我们都有这样的体会,把一个复杂的问题模块化,每个模块实现原创 2015-11-19 16:01:06 · 6134 阅读 · 0 评论 -
回溯法小结
背景介绍:回溯法是一种穷举类型的算法,与其说它是一种算法,倒不如说它是一种试法。回溯法并没有什么高深的算法思想,虽然名字起的很高规格,但其实它的算法性连二分查找都比不上。这里说的算法性其实就是指技巧性,对问题特性了解越深入,越能创造出很巧妙的算法,在时间复杂度的级别上提高算法效率。这体现了算法效率与适用性之间的矛盾,二分查找效率很高,但适用性比较低,类似的还有著名的KMP算法。而穷举法效率最低,但原创 2015-12-31 11:12:18 · 7013 阅读 · 0 评论