Ten algorithm
xhj_enen
这个作者很懒,什么都没留下…
展开
-
(图论)广度优先搜索(Breadth First Search, BFS)
描述最简单、直接的图搜索算法:从起点开始层层扩展第一层是离起点距离为1的第二层是离起点距离为2的…本质就是按层(距离)扩展,无回退。BFS算法分析1、算法流程:1、给定某起点 a ,将 a 放入缓冲区,开始搜索;2、过程:假定某时刻缓冲区内的节点为 abcabcabc,则访问节点 aaa 的邻接点 a1a2a3a_1 a_2 a_3a1a2a3,同时缓冲区变成 ...原创 2019-03-14 11:28:14 · 383 阅读 · 0 评论 -
(图论)周围区域问题
问题描述原创 2019-03-14 16:31:48 · 405 阅读 · 0 评论 -
Longest Increasing Subsequence
问题描述最长递增子序列:给定一个长度为 N 的数组,找出一个最长的单调递增子序列。例如:给定数组{5,6,7,1,2,8},则其最长的单调递增子序列为{5,6,7,8},长度为4。问题分析一、可以将 LIS 问题转换为 LCS(Longest Common Subsequence) 问题进行求解。方法如下:原数组为 A{5,6,7,1,2,8}排序后为 A’{1,2,5,6,7,8}...原创 2019-03-11 15:51:33 · 198 阅读 · 0 评论 -
Longest Common Subsequence
问题描述LCS 的定义:Longest Common Subsequence,最长公共子序列,即两个序列 X 和 Y 的公共子序列中,长度最长的那个,并且公共子序列不同于公共字串,公共子序列可以是不连续的,但是前后位置不变。LCS 的意义:求两个序列中最长的公共子序列的算法,广泛的应用在图形相似处理、媒体流的相似比较、计算生物学方面。生物学家常常用该算法进行基因序列比对,由此推测序列的结构...原创 2019-03-11 15:36:43 · 2841 阅读 · 0 评论 -
字符串编辑距离(Edit Distance)
一、问题描述定义字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符串之间,由一个转变成另一个所需的最少编辑操作次数。许可的编辑操作包括:将一个字符替换成另一个字符插入一个字符删除一个字符应用1. DNA分析:基因学的一个主要主题就是比较DNA序列并尝...原创 2019-03-11 17:05:22 · 1674 阅读 · 0 评论 -
(字符串)字符串的循环左移
一、问题描述字符串的循环左移: 给定一个字符串 S[0,…,N-1],要求把 S 的前 K 个字符移动到 S 的尾部,如把字符串 ‘abcdef’ 前面的 2 个字符 ‘ab’ 移动到字符串的尾部,得到新字符串 ‘cdefab’(字符串循环左移k,也即循环右移n-k)。算法要求: 时间复杂度为 O(n),空间复杂度为 O(1)二、问题分析1、暴力移位法每次循环左移1位,调用k次即可时...原创 2019-03-11 17:41:31 · 878 阅读 · 0 评论 -
(字符串)求一个字符串的全排列
一、问题描述给定字符串 S[0,…,N-1],设计算法,枚举 S 的全排列。二、问题分析全排列的问题规模是阶乘级的,而递归算法的时间复杂度就是用递归求的,所以考虑用递归来求解问题:分别以1,2,3,4作为首字符,剩余的字符串继续做全排列,即做递归。三、带重复字符的字符串的全排列带重复字符的全排列就是每个字符分别与它后面非重复出现的字符交换。即第i个字符与第j个字符进行交换之前,...原创 2019-03-11 21:57:55 · 1039 阅读 · 0 评论