
数据结构&算法
文章平均质量分 83
WUJIAQIANHUI
这个作者很懒,什么都没留下…
展开
-
KMP字符串模式匹配详解
KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos ){ /* 若串 S 中从第pos(S 的下标0≤pos起转载 2013-10-29 22:07:51 · 417 阅读 · 0 评论 -
并查集(Union-Find) 应用举例 --- 基础篇
本文是作为上一篇文章 《并查集算法原理和改进》 的后续,焦点主要集中在一些并查集的应用上。材料主要是取自POJ,HDOJ上的一些算法练习题。首先还是回顾和总结一下关于并查集的几个关键点:以树作为节点的组织结构,结构的形态很是否采取优化策略有很大关系,未进行优化的树结构可能会是“畸形”树(严重不平衡,头重脚轻,退化成链表等),按尺寸(正规说法叫做秩,后文全部用秩来转载 2014-08-17 11:05:45 · 507 阅读 · 0 评论 -
并查集(Union-Find)算法介绍
本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。转载 2014-08-17 11:05:22 · 461 阅读 · 0 评论 -
最近点对问题(分治)
在二维平面上的n个点中,如何快速的找出最近的一对点,就是最近点对问题。 一种简单的想法是暴力枚举每两个点,记录最小距离,显然,时间复杂度为O(n^2)。 在这里介绍一种时间复杂度为O(nlognlogn)的算法。其实,这里用到了分治的思想。将所给平面上n个点的集合S分成两个子集S1和S2,每个子集中约有n/2个点。然后在每个子集中递归地求最接近的点对。在这里,一个关键的转载 2014-08-08 23:09:02 · 667 阅读 · 0 评论 -
哈希函数有关知识
一.哈希函数的构造方法原创 2014-06-01 17:11:06 · 1260 阅读 · 1 评论 -
字符串的全排列和组合算法(转)
字符串的全排列和组合算法(转)全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函转载 2014-07-22 10:37:44 · 586 阅读 · 0 评论 -
严boss提供材料
https://github.com/monmohan/dsjslibThis is a collection of data structures and utilities, implemented in JavaScript.Data Structures and Utilities:LRU Cache with Stats - Google Guava inspired L原创 2013-11-13 10:17:13 · 681 阅读 · 0 评论 -
字符串相似度算法和最大公共子串提取算法
字符串相似度算法和最大公共子串提取算法1. Levenshtein Distance该算法又称之为 "编辑距离",用于计算两个字符串的相似程度。原理很简单,就是返回两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。次数越少,意味着字符串相似度越高。例如将 kitten 转换成 sittin转载 2014-06-03 22:19:35 · 1526 阅读 · 0 评论 -
skiplist
跳表SkipList1.聊一聊跳表作者的其人其事2. 言归正传,跳表简介3. 跳表数据存储模型4. 跳表的代码实现分析5. 论文,代码下载及参考资料 . 聊一聊作者的其人其事 跳表是由William Pugh发明。他在 Communications of the ACM June 1990, 33(6) 668-676 发表了Skip lis转载 2013-11-13 10:19:13 · 582 阅读 · 0 评论 -
有两个数组a,b,大小都为n,;通过交换a,b中的元素,使sum(a)-sum(b)最小。
有两个数组a,b,大小都为n,;通过交换a,b中的元素,使sum(a)-sum(b)最小。有两个数组a,b,大小都为n,数组元素的值任意整形数,无序; 要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小。 当前数组a和数组b的和之差为 A = sum(a) - sum(b) a的第i个元素和b的第j个元素交换后,转载 2014-09-02 23:54:33 · 871 阅读 · 0 评论