前言继上述大型网站的算法与架构(一)的讨论之后,我们继续我们的话题。上面很多人都提到了题是不扣的。这只是一部分资料,所以感觉题目没有扣。主要原因是标题太大,内容太多。我只能一部分一部分地写。希望大家见谅。我们老大只说上层,还说中层和下层!上层强调的是基础部分——也就是算法部分。它包含了当今架构中产品使用的算法,让我们对产品的本质有所了解。真正讲相关架构产品,就要从stretchtree的文章开始了。他还没有开始中和呢!大概够我学习一段时间了。每个人都有权了解算法!上面提到的两种结构(数组和链表)各有优缺点。1"数组在更新的时候比较消耗资源,后面的元素需要一个一个的移动。2"而链表在查询的时候需要从头一个一个的比较来选择要查询的内容。综上所述,我们需要一个查询速度更快、更新速度更快的结构,所以我们有了二叉树。特点:每个节点最多有两个子树。找到80,看看代码实践:运行一下,看看insert82,看看代码实践(注:在原代码中增加了一个方法insert_bit_tree):运行一下,看看#p#二叉树的烦恼我们不难发现,如果在极端情况下搜索某条数据,就会出现上图。猜猜如果有几千万条数据会怎样?由于以上原因,我们想到了平衡二叉树,也叫AVL树。BalancedBinaryTrees:AVLTree(1962)让我们看看实践中的代码。主要是理解这段代码 来说明功能。原文链接:http://www.cnblogs.com/baochuan/archive/2012/10/08/2713700.html
