javascript数据结构与算法 零(前记+前言)
前记
这本书Data Structure and Algorithm with Javascript
我将其翻译成<< javascript 数据结构和算法>>
为什么这么翻译?而不是翻译成"用javascript实现数据结构和算法"
原因有二:
一个,我觉的它更加简洁,第二个,我是想强调我们在这里使用的是javascript.
我不喜欢一些翻译的人把一个简单的语句进行加工,搞得晦涩难懂.我更喜欢外国人写书的
那种原汁原味.相同,我非常喜欢外国人的那种分享精神,它深深的打动了我.
Just try to share !
=========译者注========
序言
在过去几年里,Javascript通过Nodejs和SpiderMonkey平台 被越来越多的应用于服务端编程.因为Javascript编程正在移出浏览器端,程序猿发现他们须要那些 原本仅仅为传统语言如C++,Java提供的工具.这当中包含链表,栈,队列,图等经典的数据的数据结构同一时候包含经典算法如排序算法和查找算法.
这本书讨论怎样为服务端的Javascript实现这些数据结构和算法.
Javascript 程序猿将会发现这本书很的实用,由于它讨论了怎样实现这些数据结构和算法,同一时候包含Javascript实现它们时的一些限制.比方数组实际是对象,过度的全局变量和基于原型的对象系统.
Javascript 被不平等的称为是一门非常”糟糕”的编程语言,可是这本书向你证明了如何用该语言的”精华”部分来实现有效和高效的数据结构和算法.
为什么要学习数据结构和算法
我姑且觉得大多数阅读这本书的读者并没有系统的学习过计算机科学.假设你确实学习过,那么你已经明确为什么学习数据结构和算法如此重要.假设你没有深入的学习计算机科学或者并没有学习过这些话题,那么你应该阅读该模块.
计算机科学家Nicklaus Wirth在他一本编程书的标题中这样写道:”算法+数据结构=编程”.
这个标题就是计算机编程的本质.
不论什么编程语言仅仅要不是类似于”hello world”这样简单的语句,多多少少都须要某种类型的结构去组织这个程序;伴随着一个或者多个将输入的数据翻译成输出的数据的算法.
对于在学校没有学习过计算机科学的程序猿,他们唯一熟知的数据结构就是数组.数组对于解决一些问题是非常棒的.可是对于一些复杂的问题来说(其实它们并没有想象的那么复杂).很多有经验的程序猿必须承认,对于一些编程问题,一旦他们想到了合适的数据结构,解决该问题的算法是非常easy设计和实现的.
比如:通向高效算法的数据结构就是二叉搜索树.二叉搜索树的设计使在集合中寻找最小值和最大值很方便,比不论什么查找算法都要高效.不熟悉二叉搜索树的程序猿将使用简单的数据结构,结果导致低效率的程序.
学习算法是很重要的由于对于解决一个问题往往有许多的算法能够做到.对于开发者来说了解哪种算法最高效是很重要的.举个样例,对于列表中的元素排序,往往会有六七种算法能够实现,可是知道高速排序法比选择排序法高效将会使整个排序过程很高效.
再比如对于列表中的数据用顺序查询或者线性查询是很easy的,可是假设知道二分排序算法将比顺序查询算法高效两倍将会写出更好的程序.
深入的学习数据结构和算法教会你的不不过哪个算法或者数据结构是最高效的,还有让你知道对于正在面对的问题,选择哪种算法或者数据结构是最合适的.在敲代码的时候须要取舍,尤其是在Javascript环境中,要理解各种数据结构和算法,在这本书将帮助你不管什么做出正确的决定,包括特殊的编程问题.
javascript数据结构与算法 零(前记+前言)的更多相关文章
- javascript数据结构与算法---列表
javascript数据结构与算法---列表 前言:在日常生活中,人们经常要使用列表,比如我们有时候要去购物时,为了购物时东西要买全,我们可以在去之前,列下要买的东西,这就要用的列表了,或者我们小时候 ...
- 为什么我要放弃javaScript数据结构与算法(第八章)—— 树
之前介绍了一些顺序数据结构,介绍的第一个非顺序数据结构是散列表.本章才会学习另一种非顺序数据结构--树,它对于存储需要快速寻找的数据非常有用. 本章内容 树的相关术语 创建树数据结构 树的遍历 添加和 ...
- 为什么我要放弃javaScript数据结构与算法(第二章)—— 数组
第二章 数组 几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构.JavaScript里也有数组类型,虽然它的第一个版本并没有支持数组.本章将深入学习数组数据结构和它的能力. 为什么 ...
- 重读《学习JavaScript数据结构与算法-第三版》- 第3章 数组(一)
定场诗 大将生来胆气豪,腰横秋水雁翎刀. 风吹鼍鼓山河动,电闪旌旗日月高. 天上麒麟原有种,穴中蝼蚁岂能逃. 太平待诏归来日,朕与先生解战袍. 此处应该有掌声... 前言 读<学习JavaScr ...
- 重读《学习JavaScript数据结构与算法-第三版》- 第4章 栈
定场诗 金山竹影几千秋,云索高飞水自流: 万里长江飘玉带,一轮银月滚金球. 远自湖北三千里,近到江南十六州: 美景一时观不透,天缘有分画中游. 前言 本章是重读<学习JavaScript数据结构 ...
- JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)
前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...
- JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)
1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...
- JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序
1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...
- JavaScript 数据结构与算法之美 - 桶排序、计数排序、基数排序
1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...
随机推荐
- 【例题 7-13 UVA-1374】Power Calculus
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 结论:每次只用新生成的数字就好了. 然后就是IDA*了. 迭代深搜+剪枝. [代码] /* 1.Shoud it use long ...
- FarPoint.Win.Spread 常规操作
FarPoint.Win.Spread.FpSpread fSpread = new FarPoint.Win.Spread.FpSpread(); //设置 行数.列数 ...
- 使用H5 formData对象上传图片和视频的文件时,必填的属性
async : false,cache : false,contentType : false,// 告诉jQuery不要去设置Content-Type请求头processData : false,/ ...
- 【习题 3-12 UVA - 11809】Floating-Point Numbers
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] \(A*10^B = temp[M]*2^{2^E-1}\) 两边取一下对数 得到 \(lg_A+B = lg_{temp[M]} ...
- mysql :Native table 'performance_schema'.'cond_instances' has the wrong structure
err: 150418 13:25:06 [ERROR] Native table 'performance_schema'.'cond_instances' has the wrong struct ...
- 工欲善其事必先利其器--------搭建Android平台
工欲善其事必先利其器--------搭建Android平台 1.1 安装JDK 在Eclipse的开发过程中需要JDK或JRE的支持,否则会报错. (1) 下载JDK(建 ...
- Xvisor ARM32 启动分析
Linux内核历史悠久,特性丰富,但是代码量庞大,各个子系统交叉繁琐.对于想要将操作系统内核各个特性研究一遍的人,有时候也只好"望Linux兴叹".Xvisor是一个较新的Type ...
- PHP Filesystem 函数(文件系统函数)(每日一课的内容可以从php参考手册上面来)
PHP Filesystem 函数(文件系统函数)(每日一课的内容可以从php参考手册上面来) 一.总结 1.文件路径中的正反斜杠:当在 Unix 平台上规定路径时,正斜杠 (/) 用作目录分隔符.而 ...
- IfSpeed 带宽计算
http://www.360doc.com/content/11/0304/22/2614615_98214710.shtml http://www.cisco.com/support/zh/477/ ...
- [Docker] Run Short-Lived Docker Containers
Learn the benefits of running one-off, short-lived Docker containers. Short-Lived containers are use ...