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

开发 架构 算法
上个月老大给我们讲解了"浅谈大型网站的算法和架构",获益匪浅。由于篇幅太多(光数据结构大概就有20多种),我也没有办法一下全部吸收,故我边理解,边分章节与大家分享。

上个月老大给我们讲解了"浅谈大型网站的算法和架构",获益匪浅。由于篇幅太多(光数据结构大概就有20多种),我也没有办法一下全部吸收,故我边理解,边分章节与大家分享。

这周我查阅资料,来理解各个数据结构和算法。

推荐几本个人感觉不错的书籍:——我把电子书放到http://download.csdn.net/user/rtxbc这里了,需要下载,到这里进行下载。

《指针的艺术.蔡明志》——我只看了C语言这一篇。C语言个人感觉比较难的也就是指针了。

《数据结构 使用C语言[朱战立]》——严蔚敏的也不错,可就是里面的很多语法都是抽象语法,无法运行。我个人如果没有办法在终端运行,很难印象深刻。

《算法导论》

为了学习下载的电子书(截个图):

算法结构

C语言

介绍

1984年,Pascal语义的***和结构化程序设计***,沃斯提出“算法 + 数据结构 = 程序“,从而获得当年的图灵奖。

现今技术日新月异,互联网技术在不断的发展中,从而也翻开了历史的新篇章,这时有人提出了“算法 + 架构 = 互联网程序“。

生活在这个时代的程序员来说,这又意味着什么呢?

从这篇文章开始,我将与各位浅谈大型网站的算法和架构,今天先了解一下基础知识,然后我们进行逐步过渡。

#p#

查找算法(单机)

1.有个无序数组。

2.找7到20之间的数,你的思路是什么?

无怪乎以下两点:

1》冒泡排序

2》二分查找快

3.C代码实现

 [[94764]]执行结果

#p#

数组中插入数据

数组问题:插入太慢,得挪数据。

请看下面的代码,

 [[94764]]执行结果

试试链表

[[94764]]代码结构

链表插入数据

[[94764]]

 

链表的特点是插入快,查找慢。

代码实现:

[[94764]]实现方式

#p#

请看执行过程

于是有了二叉树(Binary Tree)

我们不难发现上面的两个结构(数组和链表)各有弊端。

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

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

综上我们需要一个查询更快,更新更快的结构,于是我们有了二叉树。由于篇幅太长,下一篇继续介绍。

https://s5.51cto.com/oss/202207/20/f938798619efcd4b691951b2e15cd8122866ff.png

原文链接:http://www.cnblogs.com/baochuan/archive/2012/09/27/2704994.html

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

2012-10-09 13:53:33

大型网站算法架构

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网站架构

2011-05-04 10:52:25

架构网站

2015-12-14 10:26:40

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

2019-05-09 09:15:28

Web网站架构

2010-08-10 10:10:28

系统架构

2011-05-19 17:54:54

2020-02-13 17:27:31

CAPPaxos 共识算法

2011-06-02 12:19:36

2011-05-12 13:24:17

点赞
收藏

51CTO技术栈公众号