算法思想
文章平均质量分 59
hujianbest
软件菜鸟的修仙之路
展开
-
动态规划
等我有时间了,一定要把《算法导论》啃完,这本书的印刷质量实在太好了,就是烧脑子,滑稽。适合应用动态规划求解的最优化问题应该具备两个要素:最优子结构:一个问题的最优解包含其子问题的最优解;子问题重叠:子问题的空间足够小,问题的递归算法会反复求解相同的子问题,而不是一直生成新的子问题。常见的可以用动态规划解决的问题有:① 0-1背包问题② 最长公共子序列③ 最短路径④ ...原创 2018-08-09 21:10:44 · 210 阅读 · 0 评论 -
如何用多线程实现归并排序
等我有时间了,一定要把《算法导论》啃完,这本书的印刷质量实在太好了,滑稽。之前听吴恩达老大说过Python里面的Numpy包的矩阵运算就是多线程的,所以能做到的情况下尽量用矩阵运算代替循环,这样能大大加快运算的速度。为了提高速度,如果不涉及外部资源读取的话,要提高运行速度就要做到并行计算,依赖于处理器的数量;如果需要等待耗时的外部资源读取,就可以通过并发边读边运算。算法导论有一章节提到...原创 2018-08-09 22:45:17 · 7455 阅读 · 1 评论 -
广度优先搜索(BFS)
BFS是一种图搜索算法,当然这种思想也可以被借鉴到各种其他的算法中。对于图中的所有节点,我们选一个起始点s,然后去发现(遍历)所有从s 点出发能直接到达的点,为了记住这些点的状态,用三种颜色来标记这些点,白色:未发现灰色:已发现黑色:与该节点邻接的点都是灰色(都已被发现) 从s 点出发,此时s 点为灰色,然后去发现与s 邻接的所有点,如果该点为白色,此时它已被发现,...原创 2018-08-22 20:42:56 · 242 阅读 · 0 评论 -
深度优先搜索(DFS)
DFS是相对于BFS的另一个中图搜索算法,其与BFS最大的不同在于它是深度优先,它会优先顺着一条路径走到底,一旦某个节点邻接的节点都被发现了,就会回溯到前面一个节点,直到这个点的邻接节点都被发现,然后再回溯到前面一个节点,如此类推。DFS也采用三种颜色来做标记,白色 = 未发现灰色 = 已发现黑色 = 邻接全部已发现这点和BFS一样,BFS的文章见 https://bl...原创 2018-08-22 20:51:30 · 176 阅读 · 0 评论