
算法
ningguixin
喜欢游泳嘿嘿
展开
-
缓存算法探究
为什么要使用缓存? 缓存的最大优点在于可以达到用空间换时间的效果,避免一些不必要的计算,从而提高应用程序的响应速度。 目前有很多缓存框架,比如ehcache, memcached, memcache, OSCache等等。然而,无论何种框架,基本上就是以这种映射机制将对象记录起来,等下次需要对象object时,先计算它的key值,然后到缓存中根据key来取,取得后返回该对象,否则转载 2012-07-09 10:53:44 · 729 阅读 · 0 评论 -
二叉树3种遍历方式
三种遍历的命名 根据访问结点操作发生位置命名: ① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问根结点的操作发生在遍历其左右子树之前。 ② LNR:中序遍历(InorderTraversal) ——访问根结点的操作发生在遍历其左右子树之中(间)。 ③ LRN:后序遍历(PostorderTra转载 2012-07-10 11:21:55 · 586 阅读 · 0 评论 -
做算法题的几个思路
算法题目往往比较复杂,要么让人感到无从下手,要么很难给出一个最优解,但这恰恰是考验一个程序员思维方式的有效手段。看到这类的难题不要慌,《算法设计与分析基础》一书比较全面地总结了做算法题目的一些思路: (1)蛮力穷举法,可以说可以解决所有的问题,不过对于组合数很大的问题时间性能不是很好甚至不能忍受。例子:全排列的生成、n选m组合的生成(这两个的蛮力法都可以利用多重嵌套循环形成,层次很壮观),8皇后转载 2012-08-10 14:36:44 · 2601 阅读 · 0 评论 -
划分算法(快速排序的根基)
/** * 划分算法 * @author Demon * */ public class Partition { static int [] partitionArr = new int [] {0,3,9,0,9,1,3,4,51,10}; //初始化测试数组 /** * 划分算法(PIVOT默认选择数组最右端) * @param partitionArr原创 2012-08-11 23:39:50 · 704 阅读 · 0 评论