算法学习
文章平均质量分 88
arag2009
这个作者很懒,什么都没留下…
展开
-
算法学习(1):最短路径—Dijkstra算法和Floyd算法
一.Floyd算法1.定义概览Floyd-Warshall算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。算法的时间复杂度为O(N3),空间复杂度为O(N2)。 2.算法描述1)算法思想原理: Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径转载 2017-10-27 15:34:28 · 733 阅读 · 0 评论 -
算法学习(2):BFS/DFS-广度优先/深度优先
DFS思想:一直往深处走,直到找到目标或者走不下去为止。通常用递归来实现使用栈保存未被遍历的结点,结点按照深度优先的次序被访问并被压入栈中,并以相反的次序出栈应用:走迷宫,查找环路,查找联通区域BFS思想:先遍历所有的兄弟节点再遍历子节点,按层遍历。通常用队列来实现使用队列保存未被检测的结点。结点按照广度优先的次序被访问和进出队列应用:找最短的路径,或者到一转载 2017-10-27 16:44:24 · 330 阅读 · 0 评论 -
算法学习(3):动态规划DP
动态规划过程: 每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划原创 2017-10-28 14:34:26 · 417 阅读 · 0 评论 -
hash算法总结
一Hash简介概念:把任意长度的输入,通过hash算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出。哈希表:若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为哈原创 2017-11-08 10:12:49 · 408 阅读 · 0 评论 -
分治法-二分搜索
二分搜索技术给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。解析:(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题;(3)分解出的子问题的解可以合并为原问题的解;(4)分解出的各个子问题是相互独立的。转载 2017-11-06 16:11:35 · 3331 阅读 · 0 评论