算法
Angel_LQ
蜗牛一步一步往上爬
展开
-
文本比较算法Ⅱ——Needleman/Wunsch算法
本文介绍基于最长公共子串的文本比较算法——Needleman/Wunsch算法。 还是以实例说明:字符串A=kitten,字符串B=sitting 那他们的最长公共子串为ittn(注:最长公共子串不需要连续出现,但一定是出现的顺序一致),最长公共子串长度为4。 定义: LCS(A,B)表示字符串A和字符串B的最长公共子串的长度。很显然,LSC(A,B)=0表示两个字符串没有公共部分。 ...转载 2018-04-02 22:27:56 · 237 阅读 · 0 评论 -
常用的推荐算法解析
1. 前言随着互联网技术和社会化网络的发展,每天有大量包括博客,图片,视频,微博等等的信息发布到网上。传统的搜索技术已经不能满足用户对信息发现的需求,原因有多种,可能是用户很难用合适的关键词来描述自己的需求,也可能用户需要更加符合他们兴趣和喜好的结果,又或是用户无法对自己未知而又可能感兴趣的信息做出描述。推荐引擎的出现,可以帮用户获取更丰富,更符合个人口味和更加有意义的信息。个性化推荐根据用户兴趣...转载 2018-03-27 21:58:12 · 609 阅读 · 1 评论 -
0-1背包问题的 python 实现
背包问题是一个典型的动态规划问题,这个不对其作解释了,直接给出代码。 求重量与价值分别为:[10, 15], [15, 25], [20, 35], [25, 45], [30, 55], [35, 70],背包容量为 80 时可以容纳的最大价值。#动态规划求背包问题Things = [[0, 0], [10, 15], [15, 25], [20, 35], [25, 45],...原创 2018-04-23 16:45:55 · 549 阅读 · 0 评论 -
Python 并行化简介
基本概念 - 并行、并发并行, parallel 互不干扰的在同一时刻做多件事; 如,同一时刻,同时有多辆车在多条车道上跑,即同时发生的概念. 并发, concurrency 同时做某些事,但是强调同一时段做多件事. 如,同一路口,发生了车辆要同时通过路面的事件. 队列, 缓冲区 类似排队,是一种天然解决并发的办法.排队区域就是缓冲区. 解决并发: 【 "食堂打饭...转载 2018-04-25 11:32:03 · 477 阅读 · 0 评论 -
递归问题的时间复杂度
笔试中经常会遇到计算时间复杂度的问题,其中大部分涉及到递归的问题。 例如:已知某程序的时间复杂度的递推公式为:T(n)=25T(n/5)+n^2,求T(n)? 解决此问题,首先需要知道主定理公式: 其实就是套用这个公式,多项式的小于(大于)在笔试中基本可以看出,即 : a^n > n^2 > n > logn 下面以两个实际问题来解释: ...原创 2018-05-05 15:22:37 · 592 阅读 · 0 评论 -
二叉树的深度优先遍历与广度优先遍历
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。 如右图所示的二叉树:A 是第一个访问...转载 2018-06-13 16:09:34 · 191 阅读 · 0 评论