前言上个月老板给我们讲解了《浅谈大型网站的算法与架构》,受益匪浅。由于篇幅太大(光是数据结构就有20种左右),无法一下子全部吸收,所以边理解边分章分享给大家。这周我查了资料,了解各种数据结构和算法。推荐几本我个人觉得不错的书:——电子书我放在这里http://download.csdn.net/user/rtxbc,需要下载的,就去这里下载吧。《指针的艺术.蔡明志》——我只看了C语言的文章。C语言个人感觉比较难的是指针。《数据结构 使用C语言[朱战立]》——严伟民的也不错,但是里面很多文法都是抽象文法,跑不起来。就个人而言,如果无法在终端中运行它,我几乎不会印象深刻。《算法导论》为了学习下载的电子书(截个图):C语言算法结构导论1984年,Pascal语义***和结构化程序设计***,Voss提出“算法+数据结构=程序”,它获得了当年的图灵奖。当今科技日新月异,互联网技术也在不断发展,从而翻开了历史的新篇章。这时,有人提出“算法+架构=互联网方案”。这对生活在这个时代的程序员意味着什么?从这篇文章开始,跟大家聊聊大型网站的算法和架构。今天先了解一下基础知识,然后我们再逐步过渡。#p#搜索算法(单机)1.有一个无序数组。2.找一个7到20之间的数,你的想法是什么?难怪下面两点:1“冒泡排序2”快速二分查找3.C代码实现执行结果#p#向数组插入数据问题:插入速度太慢,不得不移动数据。请看下面的代码,试一下链表的执行结果。链表的代码结构插入数据。链表的特点是插入快,查找慢。代码实现:实现方法#p#请看执行过程,所以有了二叉树(BinaryTree),不难发现以上两种结构(数组和链表)各有缺点。1"数组在更新的时候比较消耗资源,后面的元素需要一个一个的移动。2"而链表在查询的时候需要从头一个一个的比较来选择要查询的内容。综上所述,我们需要一个查询速度更快、更新速度更快的结构,所以我们有了二叉树。由于文章篇幅,下一篇继续介绍。原文链接:http://www.cnblogs.com/baochuan/archive/2012/09/27/2704994.html
