算法学习
AlbertLi
不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之
展开
-
看书做题动手!【再简单也要实践】
今天看书看到一个题目说的是,有一个字符串“ABCD”,设计一个算法获得其所有的子串。首先我需要澄清什么是串这个概念。 所谓串指的是:由0个或者多个字符组成的有穷序列。 子串:一个串中任意个连续字符组成的子序列,叫做这个串的子串。 根据这个定义那么一个串中最大的子串就是其本身了,最小的子串就是为空。根据定义手算的话不难得出: "ABCD"的非空子串是:A原创 2008-03-24 22:12:00 · 1042 阅读 · 0 评论 -
再收集几个Hash函数的实现
// RS Hash Functionunsigned int RSHash(char* str){ unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0; while (*str) { hash = hash * a + (*str++); a *=转载 2008-04-22 00:07:00 · 886 阅读 · 0 评论 -
字符串hash算法比较
因为一个小项目要用到这个技术,故贴出来方便查找引用链接:http://blog.iyi.cn/tech/2005/11/post_2.html1 概述 链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。 设计高效算法往往转载 2008-04-20 12:38:00 · 969 阅读 · 0 评论 -
由一道逻辑推理题衍生的对于实际问题求解的一般思路
思维的过程才是最重要的,我们要的不止是金蛋,更是那只下金蛋的鸡。 ———此类想法总结句 传说爱因斯坦出过这样一道逻辑题,此题有18个条件,要求大家最后推理出问题的答案。是否真为爱因斯坦所出我也无法考证,当然我想这只是出题人为了引起大家的注意罢了,但是题目本身还是挺有意思的,也属于实际生活中的问题了(别较真...)。我们先说说这道题本身: 1、在一条街上,有5座房子,喷了5种颜色。 2、每原创 2011-12-14 17:09:00 · 2004 阅读 · 0 评论 -
由一道逻辑推理题衍生的对于实际问题求解的一般思路(续)
接上次的关于逻辑推理题的分析,这次我们需要对上次的思路做一个反思,同时整理出更优的方法出来,一方面,帮助我们能够快速地找到解决问题的思路,同时能够提供一个良好解决方案。还记得上次的分析当中,我们采用面向对象的方法做了一次简单的尝试,但是由于思路的不完整性或者说部分的方向偏差导致不得不中断而采用其他的面向过程的解决方案。现在我们已经有了一个可行的方案了,在这个前提下,我们再次尝试一下更加令人容易想到原创 2011-12-16 20:12:58 · 1152 阅读 · 0 评论 -
贴一个好多年前自己写的AVL实现
最近整理手上的代码库,翻到老旧的AnySee代码,发现了里面巨繁琐无比的AVL实现,貌似还是COPY的老外开源的代码,近2K行,遂将自己N年前自己写的AVL的实现替换了进去,完美运行,仅300余行代码而已。 #ifndef __AVL_TREE_H__ #define __AVL_TREE_H__ template class AVLNode { public: AVLNode( c原创 2015-11-28 22:59:15 · 737 阅读 · 0 评论