当前位置:首页 > javascript > JavaScriptpdf电子书下载
《学习JavaScript数据结构与算法(第3版)》电子书封面

学习JavaScript数据结构与算法(第3版)

  • 发布时间:2020年01月09日 21:19:15
  • 作者:洛伊安妮
  • 大小:13.6 MB
  • 类别:JavaScript电子书
  • 格式:PDF
  • 版本:完整高清版
  • 评分:8.7

    学习JavaScript数据结构与算法(第3版) PDF 完整高清版

      给大家带来的一篇关于JavaScript相关的电子书资源,介绍了关于JavaScript、数据结构、算法方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小13.6 MB,洛伊安妮编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.3分

      Tags:JavaScript 数据结构 算法 

      内容介绍

      学习JavaScript数据结构与算法

      这书最先详细介绍了JavaScript語言的基本知识(包含ECMAScript和TypeScript),次之探讨了数组、栈、序列、双端序列和链表等关键的数据结构,紧接着剖析了非空子集、词典和散列表的原理,接下去论述了递归的基本原理、什么叫树及其二叉堆和堆排序,随后详细介绍了图、DFS和BFS优化算法、各种各样排列(冒泡排序、选择排序、插入排序、归并排序、快速排序、记数排列、桶排序和基数排序)和检索(顺序搜索、二分检索和内插检索)优化算法及其任意优化算法,然后详细介绍了分而治之、动态规划、贪心算法和回溯算法等高級优化算法及其函数式编程,*后还详细介绍了怎样测算优化算法的算法复杂度。

      数据结构是电子计算机以便高效率地运用資源而机构统计数据的这种方法。数据结构与优化算法是处理任何程序编写难题的基本。这书用JavaScript語言详细介绍了各种各样数据结构与优化算法,浅显易懂、由浅入深,有利于电子信息科学技术专业的大学生和不久打开职业发展的专业技术人员探寻JavaScript。 相比上个版,这版本增加了“ECMAScript和TypeScript简述”“递归”“二叉堆和堆排序”和“计算机算法与方法”四章,详细介绍了ECMAScript 2018的新特点和TypeScript的基本要素,填补了双端序列、黑红树、堆排序算法,及其记数排列和基数排序等內容,另一个还简述了Fisher-Yates任意优化算法和回溯算法(谜宫耗子难题和数独答题器),等等等等。 - 在数组、栈和队列中申明、复位、加上和删掉原素 - 建立并应用链表、双向链表和循环系统链表 - 用散列表、词典和非空子集储存的原素 - 探寻二叉树和二叉搜索树的使用方法 - 应用冒泡排序、选择排序、插入排序、归并排序和快速排序等优化算法排列数据结构 - 应用顺序搜索和二分检索等优化算法检索数据结构中的原素

      目录

      • 第1章 JavaScript介绍  1
      • 第2章 ECMAScript和TypeScript简述 23
      • 第3章 数组 46
      • 第4章 栈 83
      • 第5章 序列和双端序列 83
      • 第6章 链表 98
      • 第7章 非空子集 117
      • 第8章 词典和散列表 136
      • 第9章 递归 182
      • 第12章 树 169
      • 第12章 二叉堆和堆排序 201
      • 第13章 图 212
      • 第12章 排列和搜索算法 239
      • 第13章 计算机算法与方法 263
      • 第16章 算法复杂度 287

       

      读书笔记

      JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】

      本文实例讲述了JavaScript数据结构与算法之检索算法。分享给大家供大家参考,具体如下:

      javascript数据结构与算法---检索算法(二分查找法、计算重复次数)

      /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/
      function qSort(arr){
        if (arr.length == 0) {
          return [];
        }
        var left = [];//存储小于基准值
        var right = [];//存储大于基准值
        var pivot = arr[0];
        for (var i = 1; i < arr.length; i++) {
          if (arr[i] < pivot) {
            left.push(arr[i]);
          } else {
            right.push(arr[i]);
          }
        }
        return qSort(left).concat(pivot, qSort(right));//递归
      }
      /*二分查找法,基本原理如下:
      * 将数组的第一个位置设置为下边界(0).将数组的最后一个元素所在的位置设置为上边界(数组的长度减1)。
      * 若下边界等于或小于上边界,则做如下操作:
      *  (1).将中点设置为(上边界加上下边界) 除以2.
      *  (2). 如果中点的元素小于查询的值,则将下边界设置为中点元素所在下标加1.
      *  (3). 如果中点的元素大于查询的值,则将上边界设置为中点元素所在下标减1.
      *  (4). 否则中点元素即为要查找 的数据,可以进行返回。*/
      function binSearch(arr,data) {
        var lowerBound = 0;
        var upperBound = arr.length - 1;
        while(lowerBound <= upperBound) {
          var mid = Math.floor((upperBound + lowerBound)/2);
          if(arr[mid] < data) {
            lowerBound = mid + 1;
          }else if(arr[mid] > data) {
            upperBound = mid - 1;
          }else {
            return mid;
          }
        }
        return -1;
      }
      /*
      *计算重复次数
      *当binSearch()函数找到某个值时,如果在数据集中还有其他相同的值出现,那么该函数会定位在类似值的附近。
      *换句话说,其他相同的值可能会出现已找到值的左边或右边。
      *如果在数据集中能找到这个值,那么这个函数将开始通过两个循环来统计这个值出现的次数。
      *第一个循环向下遍历数组,统计找到的值出现的次数,当下一个值与要查找的值不匹配时则停止计数。
      *第二个循环向上遍历数组,统计找到的值出现的次数,当下一个值与要查找的值不匹配时则停止计数。
      * */
      function count(arr, data) {
        var count = 0;
        var position = binSearch(arr, data);
        if (position > -1) {
          ++count;
          for (var i = position-1; i > 0; --i) {
            if (arr[i] == data) {
              ++count;
            }
            else {
              break;
            }
          }
          for (var i = position+1; i < arr.length; ++i) {
            if (arr[i] == data) {
              ++count;
            }
            else {
              break;
            }
          }
        }
        return count;
      }
      var nums = [90,43,49,15,23,2,70,23,20,95,69,23,29,26];
      var list = qSort(nums);
      console.log(list);
      var findnum = 23;
      console.log("需要查找的数据为: " + findnum);
      var retVal = binSearch(list, findnum);
      if (retVal >= 0) {
        console.log( "找到 " + findnum + "的位置为: "+retVal);
      }else {
        console.log(" is not in array.");
      }
      console.log(findnum + "重复次数为"+count(list, findnum));
      
      

      使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:

      JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】

      更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

      希望本文所述对大家JavaScript程序设计有所帮助。

      以上就是本次介绍的JavaScript电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:python绝技:运用python成为顶级黑客

      下一篇:疯狂HTML5+CSS3+JavaScript讲义

      查看更多
      JavaScript 相关电子书
      JavaScript启示录
      JavaScript启示录 PDF 原书完整版

      《JavaScript启示录》无关于JavaScript设计模式,也无关于JavaScript面向对象代码实现。《JavaScript启示录》意图通过考察原生JavaScript对象和不同环境对原生对象的支持和细微差别。

      立即下载
      移动网页设计与开发:HTML5+CSS3+JavaScript
      移动网页设计与开发:HTML5+CSS3+JavaScript PDF 影印完整版

      将落伍的网址打导致更为灵便、友善,而且令其充分运用不一样机器设备和电脑浏览器的与众不同优点。根据《移动网页设计与开发HTML5+CSS3+JavaScript》,您将为投身第一线开发充分准备! *內容

      立即下载
      JavaScript前端开发案例教程
      JavaScript前端开发案例教程 PDF 超清扫描版

      JavaScript是这种运用于Web前端开发的开发语言,具备简易、易懂、实用的特性,用JavaScript开发设计网页页面能够提高网页页面的参与性,为客户出示即时的、动态性的互动感受。 《 JavaScript前端

      立即下载
      JavaScript入门经典
      JavaScript入门经典 PDF 第6版

      本书是学习JavaScript编程的经典教程。全新的第6版涵盖了ECMAScript 6。 全书分为8个部分,共26章。首部分JavaScript基础,包括第1章到第4章,介绍了如何使用常用函数编写简单的脚本。第二部分J

      立即下载
      JavaScript数据可视化编程
      JavaScript数据可视化编程 PDF 扫描版 立即下载
      同构JavaScript应用开发
      同构JavaScript应用开发 PDF 清晰中文版 立即下载
      HTML5+CSS3+JavaScript从入门到精通
      HTML5+CSS3+JavaScript从入门到精通 PDF 原书影印版

      本书以基础知识、示例、实战案例相结合的方式详尽讲述了HTML,CSS,JavaScript及目前最新的前端技术

      立即下载
      读者心得
      40小时21分钟前回答

      基于JavaScript实现带数据验证和复选框的表单提交

      实现: 1.用户至少选中某项,即表示选中该行,同时该行的数据验证通过,表单提交;否则,不提交。 html !DOCTYPE html html lang="en" head meta charset="UTF-8" title带数据验证和复选框的表单提交/title script src="../commonJqery/jquery-3.0.0.js" type="text/javascript"/script style type="text/css" table { border-collapse: collapse; } td,th { width: 40px; height: 100px; border:1px solid #000; } table tbody tr:hover { background-color: red; } table tbody tr:not(:first-child):hover {background-color: #666; } td input[name='number']{ width: 100px; } /style /head body form action="http://www.baidu.com" id="order_shopping" name="order_shopping" method="get" onsubmit="return checkShopping();" table id="table" class="fl" thead tr th商品名/th th单价……

      37小时14分钟前回答

      JavaScript数据结构之链表的实现

      前面楼主分别讨论了数据结构栈与队列的实现,当时所用的数据结构都是用的数组来进行实现,但是数组有的时候并不是最佳的数据结构,比如在数组中新增删除元素的时候需要将其他元素进行移动,而在javascript中使用spit()方法不需要访问其他元素。如果你在使用数组的时候发现很慢,就可以考虑使用链表。 链表的概念 链表是一种常见的数据结构。它是动态地进行存储分配的一种结构。链表有一个“头指针”变量,以head表示,它存放一个地址,指向一个元素。每个结点都使用一个对象的引用指标它的后继,指向另一个结点的引用叫做链。 数组元素依靠下标(位置)来进行引用,而链表元素则是靠相……

      码农之家

      关奇文 提供上传

      资源
      38
      粉丝
      31
      喜欢
      431
      评论
      19

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com