Learn Algorithms With Javascript - 基于 Js 进行算法学习

基于 javascript 学习并实现常用的经典算法,欢迎对算法和数学感兴趣的 Js 开发者参与,一起学习共同进步。

算法实现

  1. 排序
    1. 插入排序 sort/lib/insertion-sort.js
    2. 希尔排序 sort/lib/shell-sort.js
    3. 选择排序 sort/lib/selection-sort.js
    4. 堆排序 sort/lib/heap-sort.js
    5. 冒泡排序 sort/lib/bubble-sort.js
    6. 快速排序 sort/lib/quick-sort.js
    7. 合并排序 sort/lib/merge-sort.js
  2. 查找
    1. 顺序查找 search/sequence-search.js
    2. 二分查找实现 search/binary-search.js
    3. 插值查找 search/insert-value-search.js
    4. 斐波那契查找 search/fibonacci-search.js
    5. 哈希查找 search/hash-search.js
  3. 数据结构 DataStructures

算法分析

图文形式整理归纳该部分内容,需花费大量的时间和精力,且网上关于算法分析的高质量资料也非常多。因此,暂不对此节内容进行整理,可能的话,以后再不定期抽时间做相关补充。

数学基础

我们不一定有精力深入透彻的研究下列全部内容,但在算法分析开始前,概览下述内容绝对是非常有益的。

  1. 知识大纲
    1. 求和
      1. 求和公式及其性质
      2. 确定求和时间的界
    2. 离散数学内容
      1. 集合
      2. 关系
      3. 函数
    3. 计数与概率
      1. 计数
      2. 概率
      3. 离散随机变量
      4. 几何分布与二项分布
      5. 二项分布的尾部
    4. 矩阵
      1. 矩阵与矩阵运算
      2. 矩阵的基本性质
  2. Javascript Math Object
  3. 常用数学术语中英文对照表

计划清单

  1. 最大子数组问题
  2. 散列表
  3. 广度优先搜索
    总能找到最近的node
    图由节点和边组成,node and edge
  4. 狄克斯特拉算法
  5. 贝尔曼·福德算法
  6. 贪婪算法
  7. 旅行商问题
  8. NP完全问题
  9. 动态规划
    1. 01背包
  10. 最长公共子串
  11. 最长公共子序列
  12. 费曼算法
  13. K最近邻算法
  14. 朴素贝叶斯分类器
  15. 二叉树、 B树,红黑树,堆,伸展树
  16. 反向索引
  17. 傅里叶变换
  18. MapReduce
  19. Apache Hadoop
  20. Simhash
  21. Diffie-Hellman

参考资料

1. Website

  1. Better Explained —— Learn math without memorization. No cramming.
  2. Commoncraft —— Our Product is Explanation.
  3. GeeksforGeeks —— A computer science portal for geeks.

2. Book

  1. 算法图解 —— 像小说一样有趣的算法入门书
  2. Algorithms —— 中文版书名:《算法概论》,将任何具有初等数学基础的人引入算法应用与研究殿堂的引路石。
  3. Algorithms Fourth Edition —— 算法第四版 algs4.cs.princeton.edu
  4. Introduction to Algorithms —— Thomas H.Cormen Charles E.Leiserson Ronald L.Rivest Clifford Stein

写在后面

  1. 本文地址:https://www.cnblogs.com/kelsen/p/9387618.html
  2. 项目地址:Learn-Algorithms-With-Javascript

关于本文如果您有任何建议或疑问请在下面留言交流,也可通过 Web前端高级工程师 群进行线上沟通。avatar

转载于:https://www.cnblogs.com/kelsen/p/9387618.html

数据结构和算法是计算机科学中非常重要的概念。数据结构是组织和存储数据的方式,而算法是在给定的数据结构上执行操作的方法。数据结构和算法学习对于编写高效和可维护的代码至关重要。 JavaScript是一种流行的编程语言,广泛应用于Web开发和移动应用程序开发。它是一种高级语言,具有灵活性和易读性,使得学习数据结构和算法JavaScript实现变得容易。 在使用JavaScript实现数据结构和算法时,可以利用JavaScript提供的一些内置数据结构,例如数组和对象。数组可以用于存储和访问有序的数据集合,而对象可以用于存储键值对。此外,JavaScript还提供了一些内置的数据结构和操作,例如队列、堆栈和链表等。 在学习数据结构和算法时,可以使用JavaScript来实现各种常见的数据结构,例如栈、队列、链表、二叉树和图等。通过实践编写这些数据结构的JavaScript实现,可以更好地理解它们的原理和应用。同时,还可以通过使用JavaScript编写算法来解决各种问题,例如排序、搜索和图算法等。 使用JavaScript实现数据结构和算法的好处之一是可以直接在浏览器中运行和调试代码,无需额外的编译和配置。此外,JavaScript的简洁语法和灵活性使得代码编写变得简单和直观。 总之,数据结构和算法是计算机科学中的基础知识,而JavaScript是一种流行且易于学习和使用的编程语言。通过学习和实践数据结构和算法JavaScript的结合,可以提高编写高效和可维护代码的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值