- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构和算法在JavaScript中的重要性
数据结构和算法在JavaScript中的重要性
JavaScript是现在世界上最受欢迎的语言之一, 其在GitHub(世界上最大的代码分布式版本控制系统)拥有超过四十万repositories,位列所有语言之首,并且每年都在不断增加。随着Node.js 的兴起,JavaScript已经不仅仅是一门前端开发语言,而成为一门全端开发语言。
随着网络技术的不断革新和快速发展,人们对于网络体验的要求已经不仅仅是其能做什么,而更多是其能做多快。那种打开网页按分钟计算时间的时代已经不能被世人接受。随着用户友好体验的要求越来越高,数据结构和算法的应用变的日益重要。数据结构和算法的优化可以解决绝大多数的效率问题,提高代码的质量,提升系统的性能。
一、JavaScript中的数据结构
JavaScript是一门功能性语言,和其它一些我们所熟悉的程序设计性语言,如:Java、C++一样,可以实现多种数据结构。下面我们来介绍一下JavaScript中数据结构及其应用。
1.数组。数组是用来存储一系列具有相同数据类型的值。其主要用来添加或删除数组中的元素。在JavaScript中,数组可以存储不同数据类型的值。JavaScript数组中有sort方法,用来按照字母顺序排序,更确切的说是按照ASCII码值排序。
2.堆。堆是一个按照后进先出(LIFO)原则排序的集合。其应用在于编程语言用它来实现数据值的存储和方法的调用。在实现数字从十进制到二进制的转化时,堆也起到至关重要的作用。堆在JavaScript中的实现是通过数组。
3.队列。队列是一个按照先进先出(FIFO)原则排序的集合。平时我们排队买东西就是最好的例子。在计算机应用中,打印机打印文件就是应用队列的数据结构实现的。优先队列是一种特殊的队列,类似我们平时登飞机一样分为头等舱,商务舱和经济舱,按照优先级顺序登机。JavaScript中优先队列的实现可以通过设置标志位定义优先级,按照优先级排序的方式实现。还有一种队列的数据结构叫做循环队列。跳交谊舞时候,大家围成一个圈,定时交换舞伴就是一个循环队列的例子。
4.链表。链表是一种包含值和指针的动态数据结构,与数组不同的是,我们可以动态的增加和删除其中的元素。链表的优点在于,增加和删除链表中元素的时候,不需要移动其它的元素,只要将变动元素的前后指针改变即可,所以当大量操作增加和删除元素的时候,链表是最好的选择。在JavaScript中,不仅可以支持链表,还可以支持双向链表即分别指向前后元素的指针,而且支持循环列表即末尾元素指针指向首元素。
5.集。像数组、堆、队列还有链表这些数据结构都是有序数据结构。而集则是一系列无规则且唯一的元素的集合。和数学领域的概念相同,没有元素的集就是空集,集可以有并集,交集,差集。在ECMAScript 6中对集的实现进行的封装,而目前所使用的ECMAScript 5.1则需要通过数组来实现集的操作。
6.字典和哈希表。前面所讨论的集是用来存储唯一元素的集合,那么字典和哈希表同样是用来存储唯一元素的集合。集中存储的是值,而字典和哈希表存储的是键值对。字典是用来通过键值对来查找特定元素的,就像地址簿一样。在JavaScript中其和地图是一样的。所以Map和Set在JavaScript中是指同一种数据结构。ECMAScript 5.1中对Set进行了封装,而ECMAScript 6中对Map和Set都进行了封装。哈希表,是通过字典来实现的。所谓哈希,就是指在数据结构中花最少的时间找到特定元素。JavaScript中支持哈希表和哈希集,而他们两个本身就是一种数据结构。
7.树。树是一种无序的数据结构,它是一种具有继承结构的抽象模型。JavaScript可以实现二叉树、二叉搜索树。JavaScript中可以实现树的多种遍历,例如:在序遍历、前序遍历和后序遍历。树有三种搜索方式,搜索最小值、最大值和特定值,依据不同的要求选择不同的搜索顺序是提高程序性能的关键。
8.图。图是一种网络结构的抽象模型,图包含节点和边缘。我们熟知的社交网络就是图的数据结构。JavaScript可以实现图的广度搜索和深度搜索。广度搜索是通过队列实现的,而深度搜索则是通过堆来实现的。根据不同的需求,选择不同的数据结构来实现。
二、JavaScript中的排序和搜索算法
当我们记录一个电话号码的时候,可以把它记录在笔记本上,想要用的时候打开笔记本就能找到。但是当我们有成百上千的电话需要记录并使用的时候,搜索想要拨打的电话号码便需要很多时间。面对如此庞大的数据量,为了减少获取目标信息的时间,排
- 软件下载与安装、电脑疑难问题解决、office软件处理 + 关注
-
实名认证服务提供商
专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!
文档评论(0)