算法与数据结构
文章平均质量分 80
king821221
这个作者很懒,什么都没留下…
展开
-
2006百度之星程序设计竞赛初赛(转)
第一题 百度语言翻译机百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套独特的缩略语。他们在平时的交谈、会议,甚至在各种技术文档中都会大量运用。为了让新员工可以更快地适应百度的文化,更好地阅读公司的技术文档,人力资源部决定开发一套专用的翻译系统,把相关文档中的缩略语和专有名词翻译成日常语言。输入要求:输入数据包含三部分:1. 第一行包含一个整数N(N≤转载 2008-01-22 10:19:00 · 501 阅读 · 0 评论 -
KMP模式匹配算法
关于KMP算法本身已经没有好说的了,网上资料也比较多,我看的是下面这段网页的内容,跟书上差不多:模式匹配的KMP算法详解点击数:12442 发布日期:2006-6-12 16:33:00 【收藏】 【评论】 【打印】 【编程爱好者论坛】 【关闭】Tag:KMP 模式匹配 模式匹配的KMP算法详解这种由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现的改进原创 2008-04-26 12:10:00 · 383 阅读 · 0 评论 -
数据结构静态链表的一个实现,仅供参考
数据结构静态链表的一个实现。思想是开一个静态数组,每个数组元素中有它的后继元素的位置序号。并且用备用链表的方式来对删除的元素留出的空间进行循环使用。具体的讲解数据结构书上都有,这是在看一个小的题目时想到可以用静态链表来实现更加方便,并且时间复杂度低才使用的。具体题目如下:1.停车场管理问题描述:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按原创 2008-05-31 16:13:00 · 1199 阅读 · 0 评论 -
魔王语言解释题目的解答
魔王语言解释问题描述有一个魔王总是使用自己的一种非常精练而抽象的语言讲话,没有人能听懂,但他的语言是可以逐步解释成人能听懂的语言,因为他的语言是由以下两种形式的规则由人的语言逐步抽象上去的:(1)α->β1β2……βm(2)(θδ1δ2……δn)—>θδnθδn-1……θδ1θ在这两种形式中,从左到右均表示解释。试写一个魔王语言的解释系统,把他的话解释成人能听得懂的话;基本原创 2008-06-01 16:04:00 · 2338 阅读 · 2 评论 -
N个字符串的最大公共子串
求最长的公共子串(NOI’93第一题) 求N个字符串的最长公共子串,N<20,字符串长度不超过255。例如N=3,由键盘依次输入3个字符串为Whatislocalbus?Namesomelocalbuses.loca1busisahighspeedI/Obusclosetotheprocessor.则最长公共子串为“localbus”。此题也是作为第一题出现,同样有很多人在此题上失分。我们都做过求转载 2008-06-03 21:53:00 · 3740 阅读 · 0 评论 -
zju 1050 解题报告 字符串
本题是从搜索引擎中根据单词在用户的查询串中出现的情况计算文档权重这个问题简化出来的,解题思路比较简单,关键是理解题意并且熟练运用STL中的map容器。题目如下:Start Up the StartupTime limit: 1 Seconds Memory limit: 32768K Total Submit: 805 Accepted Submit: 182 Cl原创 2008-06-08 16:50:00 · 434 阅读 · 0 评论 -
zju 1004 解题报告 堆栈
题目如下:Anagrams by StackTime limit: 1 Seconds Memory limit: 32768K Total Submit: 5453 Accepted Submit: 2313 How can anagrams result from sequences of stack operations? There are two sequence原创 2008-06-06 21:21:00 · 658 阅读 · 0 评论 -
POJ 2231 解题报告 排序+递推+高精度运算
题目:Moo Volume Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4515原创 2008-06-22 17:51:00 · 1190 阅读 · 2 评论 -
POJ 1002 解题报告 哈希 | 二叉排序树
这道题目第一反应是用哈希,然后觉得用排序也可以,先后想到快速排序,堆排序,二叉排序树。我的第一次解答用的哈希做的,字符序列转换成整数序列。开了一个10000000的大数组,因此空间用的多,遍历数组的时间也多了,不过过了。哈希的缺点在于最后统计时从前到后遍历大数组找重复的很花时间。题目: 487-3279 Time L原创 2008-06-21 21:27:00 · 1405 阅读 · 0 评论 -
POJ 1007 解题报告 排序
题目:DNA Sorting Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24201原创 2008-06-23 21:00:00 · 3021 阅读 · 0 评论 -
一道智商测试题
http://topic.csdn.net/u/20111114/00/7d943d10-9e4f-43c7-95dd-3bc5c18850e7.html转载 2011-11-15 21:23:14 · 255 阅读 · 0 评论 -
相似数据检测算法
相似数据检测算法对给定的一对数据序列计算两者之间的相似度([0,1], 1表示完全相同)或距离([0, ), 0表示完全相同),从而度量数据之间的相似程度。相似数据检测在信息科学领域具有非常重要的应用价值,比如搜索引擎检索结果的聚类与排序、数据聚类与分类、Spam检测、论文剽窃检测、重复数据删除、Delta数据编码等应用。正是由于它的重要性,近年来成为了研究的重点,不断有新检测方法涌现并得到评估。转载 2011-10-30 15:12:37 · 268 阅读 · 0 评论 -
微软等公司数据结构+算法面试100题系列
http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html?38389转载 2011-11-01 21:04:28 · 152 阅读 · 0 评论 -
Linear hash table paper reference for read
http://www.csd.uoc.gr/~hy460/pdf/Dynamic%20Hash%20Tables.pdf转载 2012-02-12 00:16:50 · 278 阅读 · 0 评论 -
A few notes on InnoDB PRIMARY KEY
http://www.ovaistariq.net/604/a-few-notes-on-innodb-primary-key/转载 2012-02-24 21:47:16 · 199 阅读 · 0 评论 -
程序员编程艺术
http://blog.csdn.net/v_JULY_v/article/category/784066转载 2012-03-17 22:32:58 · 221 阅读 · 0 评论 -
计数排序算法(转)
计数排序算法 计数排序是一个非基于比较的线性时间排序算法。它对输入的数据有附加的限制条件: 1、输入的线性表的元素属于有限偏序集S; 2、设输入的线性表的长度为n,|S|=k(表示集合S中元素的总数目为k),则k=O(n)。 在这两个条件下,计数排序的复杂性为O(n)。计数排序算法的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值转载 2008-04-13 15:51:00 · 417 阅读 · 0 评论 -
用堆实现优先队列
优先队列不同于普通队列采用先进先出的队列元素存取方式。插入队列元素时按照一定的规则插入,每次都是取队列中优先级最高的元素。可以采用最大堆来实现优先队列。堆是一颗完全二叉树,每个结点有一个权。它的特点是根结点的权值最大,且根的两个子树也各是一个堆。可以用数组来模拟堆。堆的操作有两种: (1)插入:方法是将新的元素i插到当前数组最后一个元素的下一个位置,然后对i进行上升调整。当i比它的父亲大原创 2008-01-20 22:19:00 · 2418 阅读 · 1 评论 -
一道Google top coder的850分例题及解答(转载)
原题: 假设有这样一种字符串,它们的长度不大于 26 ,而且若一个这样的字符串其长度为 m ,则这个字符串必定由 a, b, c ... z 中的前 m 个字母构成,同时我们保证每个字母出现且仅出现一次。比方说某个字符串长度为 5 ,那么它一定是由 a, b, c, d, e 这 5 个字母构成,不会多一个也不会少一个。嗯嗯,这样一来,一旦长度确定,这个字符串中有哪些字母也就确定耍ㄒ坏那转载 2008-01-23 09:34:00 · 329 阅读 · 0 评论 -
左偏树的特点及其应用(转)
二、左偏树的定义和性质.......................................................................................... 22.1 优先队列,可并堆...............................................................................转载 2008-01-27 18:27:00 · 2878 阅读 · 0 评论 -
Range Minimum Query and Lowest Common Ancestor
Range Minimum Query and Lowest Common Ancestor By danielpTopCoder Member Introduction Notations Range Minimum Query (RMQ) Trivial algorithms for RMQ A solution Sparse Table (ST) algorithm转载 2008-01-26 12:07:00 · 386 阅读 · 0 评论 -
线段树- Count the Colors
题目:Painting some colored segments on a line, some previously painted segments may be covered by some the subsequent ones. Your task is counting the segments of different colors you can see at last原创 2007-12-14 10:53:00 · 602 阅读 · 0 评论 -
树状树组入门
树状数组,数组a是原数组,下面是他们的一些关系数组C就是C1=a1C2=a1+a2C3=a3C4=a1+a2+a3+a4C5=a5……C8=a1+a2+a3+a4+a5+a6+a7+a8……C2^n=a1+a2+….+a2^n那么树状数组具体怎么定义的呢?思考上面的规律,不难得出结论:对于序列a,我们设一个数组C定义C[i] = a[i – 2^k + 1] + … + a[原创 2007-12-22 11:40:00 · 457 阅读 · 0 评论 -
线段树- Lost Cows
Lost Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1876 Accept原创 2007-12-22 00:14:00 · 825 阅读 · 12 评论 -
基本算法- 排序
在练习题目过程中,需要用到排序。C++中有专门的排序函数qsort,采用快速排序算法实现。但是在待排序序列为有序序列时,快速排序算法复杂度变为O(n)。排序算法中堆排序算法在任何情况下复杂度都为O(nlogn) ,只需要O(1)的辅助空间,因此是比较优秀的排序算法。处于学习算法的目的,写一个采用堆排序算法的函数,函数原型仿照qsort()。Code:void heapSort(void *原创 2007-12-21 00:09:00 · 270 阅读 · 0 评论 -
并查集实现
#include #include /* 并查集 * 算法:树状、带路径压缩的并查集 参考严蔚明数据结构等价类一章 * 备注:by king821221 07-12-27*/template class unionSet{public: //建立一个新的集合 void MAKE_SET(int size) { if(size>0) memset(arr,-1,size*sizeof(in原创 2007-12-28 13:42:00 · 330 阅读 · 0 评论 -
中文分词中的trie检索树实现(转)
中文分词中的trie检索树实现 这几天在研究中文分词,目前已经研究试验了基于词典的常用中文分词算法,包括正向最大匹配、逆向最大匹配、整词二分法、基于tire的中文分词、逐词二分法、双字多字hash的方法,稍后的文章会提及中文分词的方法和程序。此篇文章是基于tire的中文分词中检转载 2008-04-05 22:14:00 · 484 阅读 · 0 评论 -
用并查集做表达式求值
每次在尚未运算的运算符找出一个优先级最高的符号,进行相应的运算,直至仅剩一个数字时返回。这种方法符合自然思维和运算规则,实现简单明了,不易出错。1.数据结构:我们由左而右扫描表达式串st的每一个字符,存储每一个运算的信息。其中第i个运算的运算符存储在c[i],优先级存储在d[i]d[i]= (括号嵌套层数)*3+1 +,- (转载 2008-01-09 23:00:00 · 282 阅读 · 0 评论 -
baidu笔试
第1题:用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n)。该函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。注意,作为公用库函数,请注意安全检查,注意处理内存区重合的情况。 void * memmove(void * dest,const void *src,size_t count)00转载 2008-01-09 23:03:00 · 349 阅读 · 0 评论 -
并查集 (Union-Find Sets)及其应用
并查集:(union-find sets)是一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多。一般采取树形结构来存储并查集,并利用一个rank数组来存储集合的深度下界,在查找操作时进行路径压缩使后续的查找操作加速。这样优化实现的并查集,空间复杂度为O(N),建立一个集合的时间复杂度为O(1),N次合并M查找的时间复杂度为O(M Alpha(转载 2008-01-10 21:20:00 · 208 阅读 · 0 评论 -
算法的力量:位运算在排序与搜索中的应用(转)
楔子:问题:假设一个文件中有9亿条不重复的9位整数,现在要求对这个文件进行排序。一般解题思路:1、将数据导入到内存中2、将数据进行排序 (比如插入排序、快速排序)3、将排序好的数据存入文件难题:一个整数为4个字节即使使用数组也需要900,000,000 * 4byte = 3.4G内存对于32位系统,访问2G以上的内存非常困难,而且一般设备也没有这么多的物理内存将数据完全导入到内存中的转载 2008-01-20 12:32:00 · 875 阅读 · 0 评论 -
一个不错的博客 关于搜索的
http://blog.likeshow.net/default.asp?cat=8转载 2008-04-11 22:55:00 · 258 阅读 · 0 评论 -
后缀数组的实现(转帖)
后缀数组(Suffix Array)——实现与应用 我在前面一篇文章中已经概要地讲了后缀数组的基本理论依据,下面结合一个 ACM/ICPC 竞赛题目来说说后缀数组的简单应用。我们先来实现后缀数组 O(nlogn) 的构造算法。我曾经在老的博客上写过一个比较丑陋的后缀数组构造算法,我在产生写这两篇文章的想法时,有去网转载 2008-04-13 16:09:00 · 1423 阅读 · 1 评论