浅谈大型网站的算法和架构(二)

开发 架构 算法
上文中很多人提到不扣题,这只是一部分资料,所以会感觉到不扣题,主要是题目太大了,而且内容太多了,我只能一部分一部分的写出来,望大家见谅。我们老大也只讲到上,还有中和下呢!

承接上文浅谈大型网站的算法和架构(一) ,我们继续聊我们的话题。

上文中很多人提到不扣题,这只是一部分资料,所以会感觉到不扣题,主要是题目太大了,而且内容太多了,我只能一部分一部分的写出来,望大家见谅。

我们老大也只讲到上,还有中和下呢!

上偏重于基础部分——就是算法部分。里面包括现今架构中的产品使用的算法,让我们了解产品本质的一些东西。需要到伸展树这一篇开始才能真正讲到相关架构产品。

中和下他还没开始呢!估计也够我研究一段时间了。大家就权当了解下算法吧!

二叉树

上文中提到的两个结构(数组和链表)各有弊端。

1》数组在更新的时候比较消耗资源,需要挨个挪动后面的元素。

2》而链表在查询的时候需要从头挨个对比之后选择出要查询的内容。

综上我们需要一个查询更快,更新更快的结构,于是我们有了二叉树。

特点:

每个结点最多有两棵子树。

找80

我们来看看代码实践:

[[94946]]让我们运行起来看看

插入82

我们来看看代码实践(注意:在原有的代码上加了一个方法insert_bit_tree):

[[94946]]让我们运行起来看看

#p#

二叉树的烦恼

 

我们不难发现如果在一个很极端的情况下,查找某个数据,那么会出现上图的情况。你猜想一下,如果是几千万条数据,会出现什么情况呢?

由于上述原因,我们想到了平衡二叉树,又叫AVL树。

平衡二叉树:AVL Tree(1962)

 

让我们看看代码实践。

主要理解一下这段代码 

[[94946]]对该函数进行图解。

原文链接:http://www.cnblogs.com/baochuan/archive/2012/10/08/2713700.html

责任编辑:林师授 来源: 博客园
相关推荐

2012-09-28 14:08:20

大型网站架构大型网站算法算法

2014-03-11 15:47:29

大型网站速度优化运维人员

2016-11-07 21:00:04

网站service架构设计

2013-10-15 13:24:00

负载均衡架构

2014-09-26 09:53:41

系统架构架构架构演变

2012-01-16 09:54:37

大型网站

2019-07-04 13:05:18

MySQL设计数据库

2014-06-17 14:01:34

Mysql网站架构

2015-12-14 10:26:40

2011-05-04 10:52:25

架构网站

2016-08-08 13:59:02

MySQL架构数据库

2009-06-16 14:43:23

大型网站系统架构

2019-10-21 09:32:48

缓存架构分层

2017-05-08 11:53:21

2010-08-10 10:10:28

系统架构

2019-05-09 09:15:28

Web网站架构

2011-05-19 17:54:54

2011-05-12 13:24:17

2011-06-02 12:19:36

2020-02-13 17:27:31

CAPPaxos 共识算法
点赞
收藏

51CTO技术栈公众号