
算法
文远先生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法图解--K最近邻算法
要点:1.KNN用于分类和回归,需要考虑最近的邻居。分类就是编组,回归就是预测结果(如数值)2.特性抽取的意义就是将物品转换为一系列可以比较的数字。3.能否挑选合适的特性事关KNN算法的成败。4.OCR指的是光学字符识别,提取线段、点和曲线等特征。5.大多数机器学习的算法都包含训练的步骤,例如OCR的第一步就是查看大量的数字图像提取特征。...原创 2019-10-31 19:45:14 · 286 阅读 · 0 评论 -
算法图解--动态规划
动态规划注意点:1.仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用。2.需要在给定约束条件下优化某个问题时,可使用动态规划来解决。3.问题可以分解为离散子问题时,可以使用动态规划来解决。4.每种动态规划解决方案都涉及网格。5.单元格中的值通常是你要优化的值。6.每个单元格都是一个子问题,因此你需要考虑如果将问题分解成子问题。7.没有放之四海皆准的计算动态规划解决方案...原创 2019-10-30 14:43:43 · 422 阅读 · 0 评论 -
算法图解--贪婪算法与NP完全问题
要点:1.贪婪算法是一种近似算法,可以用来解决一些NP完全问题。2.元素较少时算法的运行速度很快,随着元素数量增加,速度变得非常慢。这是NP完全问题。3.涉及‘所有组合’的问题通常是NP完全问题4.不能将问题分成小问题,必须考虑各种可能的情况。这可能是NP完全问题。5.如果问题设计序列(类似城市序列)并且难以解决,这可能是NP完全问题。6.如果问题涉及集合并且难以解决,可能是NP完全问...原创 2019-10-29 15:24:05 · 472 阅读 · 0 评论 -
算法图解-迪克斯特拉算法
迪克斯特拉算法步骤:1.找出“最便宜”的节点,即可在最短时间内到达的节点2.更新该节点的邻居节点的开销(以便于之后的循环)3.重复这个过程,直至对图中的每个节点都这样做了4.计算最终路径注意点:1.计算非加权图中的最短路径,可以使用广度优先搜索。计算加权图中的最短路径,可使用迪克斯特拉算法。2.迪克斯特拉算法只适用于有向无环图3.如果有负权边,那么就不能使用迪克斯特拉算法,这个时候...原创 2019-10-28 16:42:31 · 1743 阅读 · 0 评论 -
递归的简单例子
1.写一个递归函数来表示列表中包含的元素数量def all(arr):if arr == []:return 0#基线条件是列表为空else:return 1+all(arr[1:])#递归条件arr = [1,1,1,1,1,2,2,2,2,2]print(all(arr))找出列表中最大的数字#思路找出列表中最大的数,那么我们只需要对列表中的2个数进行比较,剩下...原创 2019-10-22 17:34:41 · 232 阅读 · 0 评论 -
选择排序简单示例
从一组数组中排出从小到大的顺序,思路是每次找出最小的数值,把他放到新的列表中,然后再在剩下的数组中寻找最小的数值,再把这个数值放到新的列表中,执行N次。循环中嵌套循环def findmin(arr): min = arr[0] min_number = 0 #先取一个数组中的值,定义索引为0 for i in range(1,len(arr)): ...原创 2019-10-16 22:05:06 · 176 阅读 · 0 评论 -
二分查找简单例子
在电话簿中根据名字查找电话号码(电话簿是一个字典)def phone_number(phone_list,name): high = len(phone_list)-1 low = 0 #因为python列表是从0开始记做第一个元素,所以high要列表长度-1,电话簿是一个字典 guess0 = [] for names in phone_list.ke...原创 2019-10-15 15:36:28 · 345 阅读 · 1 评论