前记

这本书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数据结构与算法 零(前记+前言)的更多相关文章

  1. javascript数据结构与算法---列表

    javascript数据结构与算法---列表 前言:在日常生活中,人们经常要使用列表,比如我们有时候要去购物时,为了购物时东西要买全,我们可以在去之前,列下要买的东西,这就要用的列表了,或者我们小时候 ...

  2. 为什么我要放弃javaScript数据结构与算法(第八章)—— 树

    之前介绍了一些顺序数据结构,介绍的第一个非顺序数据结构是散列表.本章才会学习另一种非顺序数据结构--树,它对于存储需要快速寻找的数据非常有用. 本章内容 树的相关术语 创建树数据结构 树的遍历 添加和 ...

  3. 为什么我要放弃javaScript数据结构与算法(第二章)—— 数组

    第二章 数组 几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构.JavaScript里也有数组类型,虽然它的第一个版本并没有支持数组.本章将深入学习数组数据结构和它的能力. 为什么 ...

  4. 重读《学习JavaScript数据结构与算法-第三版》- 第3章 数组(一)

    定场诗 大将生来胆气豪,腰横秋水雁翎刀. 风吹鼍鼓山河动,电闪旌旗日月高. 天上麒麟原有种,穴中蝼蚁岂能逃. 太平待诏归来日,朕与先生解战袍. 此处应该有掌声... 前言 读<学习JavaScr ...

  5. 重读《学习JavaScript数据结构与算法-第三版》- 第4章 栈

    定场诗 金山竹影几千秋,云索高飞水自流: 万里长江飘玉带,一轮银月滚金球. 远自湖北三千里,近到江南十六州: 美景一时观不透,天缘有分画中游. 前言 本章是重读<学习JavaScript数据结构 ...

  6. JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

    前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...

  7. JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)

    1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...

  8. JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

  9. JavaScript 数据结构与算法之美 - 桶排序、计数排序、基数排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

随机推荐

  1. java 编程思想-java运算符--曾经不太明确的

    1.java 运算符 主要是逻辑运算符和按位运算符;移位运算符-name tecmint.txt 逻辑运算符:And(&&) ; OR(||);Not(!) 按位运算符:And(&am ...

  2. amazeui学习笔记--css(常用组件6)--图标Icon

    amazeui学习笔记--css(常用组件6)--图标Icon 一.总结 1.关注用法即可:在 HTML 上添加添加 am-icon-{图标名称} class. <span class=&quo ...

  3. 洛谷—— P1017 进制转换

    https://www.luogu.org/problem/show?pid=1017#sub 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1) ...

  4. 51nod Bash游戏(V1,V2,V3,V4(斐波那契博弈))

    Bash游戏V1 有一堆石子共同拥有N个. A B两个人轮流拿.A先拿.每次最少拿1颗.最多拿K颗.拿到最后1颗石子的人获胜.如果A B都很聪明,拿石子的过程中不会出现失误.给出N和K,问最后谁能赢得 ...

  5. 从零开始使用git第二篇:git的日常操作

    从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...

  6. 9.2 Binder系统_驱动情景分析_服务注册过程

    1. 几个重要结构体的引入给test_server添加一个goodbye服务, 由此引入以下概念: 进程间通信其实质也是需要三要素:源.目的.数据,源是自己,目的用handle表示:通讯的过程是源向实 ...

  7. P2P平台公司的9种职位

     1.技术   开发类:开发系统,实现新功能   维护类:服务器和网站维护   更多:Web前端等      观点:技术岗位很关键,但是很多不懂技术的老板,不会认可你的价值.   太多的老板,以为技术 ...

  8. swift项目第一天:环境部署

    一:项目部署 项目部署 一.开源中国(OSChina) 网站地址:https://git.oschina.net/ 开源中国社区成立于2008年8月,其目的是为中国的IT技术人员提供一个全面的.快捷更 ...

  9. get_slave_status.py

    #!/usr/bin/env python#-*- encoding: utf8 -*- import mysql.connectorimport get_mysql_conn_info    &qu ...

  10. CTR深度学习

    深度学习在 CTR 中应用 一. Wide&&Deep 模型 首先给出Wide && Deep [1] 网络结构: 本质上是线性模型(左边部分, Wide model) ...