
JavaScript数据结构与算法
文章平均质量分 69
由基础进入,享受算法的快乐
cv全粘工程师
全粘
展开
-
【JS 常用的概率算法】
可以利用马尔科夫链模拟状态的转移过程,并通过统计不同状态出现的频率来计算概率。例如,可以使用马尔科夫链模拟赌博游戏的输赢情况。如果输入的参数无解,则算法会随机生成新的参数再进行计算。拉斯维加斯算法是一种随机化算法,其特点是在进行计算时,会使用随机数来处理问题。蒙特卡罗算法利用随机采样的方式来模拟实验,并通过统计实验结果的频率来得出概率。例如,可以通过模拟抛硬币的过程来计算正面向上的概率。概率分布函数是描述随机变量在每个可能取值处的概率的函数,其中最常用的是正态分布函数、均匀分布函数和指数分布函数。原创 2023-08-16 17:55:10 · 1152 阅读 · 0 评论 -
【JS 贪心算法常见步骤】
在上面的例子中,我们将所有活动按照结束时间排序,然后从第一个活动开始选择可行的活动并加入结果集合。这里选择的是局部最优解,即选择结束时间最早的活动。你希望从这些活动中选择尽可能多的活动,以便你可以参加尽可能多的活动。贪心算法是一种解决优化问题的算法,其思想是在每一步选择中选择当前状态下最优解,从而达到全局最优解的目的。从第一个活动开始,选择第一个可行的活动,也就是第一个活动的结束时间早于或等于第二个活动的开始时间。将问题模型化为一个包含若干子问题的问题集合,每个子问题都有一个最优解。原创 2023-08-16 17:51:07 · 968 阅读 · 0 评论 -
【JS 线性代数算法之向量与矩阵】
线性代数是数学的一个分支,用于研究线性方程组及其解的性质、向量空间及其变换的性质等。在计算机科学领域中,线性代数常用于图形学、机器学习、计算机视觉等领域。本文将详细介绍 JS 中常用的线性代数算法,并提供代码示例。原创 2023-08-14 18:20:22 · 1325 阅读 · 0 评论 -
【JS 常用查找算法】
二分查找也称为折半查找,它的基本思想是先将数据集排序,然后将数据集从中间分成两部分,如果待查找的元素小于中间值,则在左半部分继续查找,否则在右半部分继续查找,直到找到该元素或者确定该元素不存在,时间复杂度为O(logn)。哈希查找又称为散列查找,它的基本思想是通过哈希函数把待查找的元素映射成一个唯一的索引值,然后在该索引位置查找该元素,如果该元素不存在,返回-1。线性查找是最简单的一种查找算法,它的基本思想是从头到尾遍历待查找的数据集,找到对应的元素,时间复杂度为O(n)。原创 2023-08-11 17:34:31 · 695 阅读 · 0 评论 -
【JS 排序算法】
快速排序是一种常见的排序算法,它采用了分治的思想,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再利用递归的方式将这两部分数据分别进行快速排序,最终达到整个序列有序的效果。排序完毕后,返回排序后的序列。选择排序(Selection Sort)是一种简单直观的排序算法,其基本思想是在待排序的元素中选出最小(或最大)的一个元素,与序列最左侧的元素交换位置,然后再从剩余未排序的元素中继续寻找最小(或最大)的元素,重复以上操作直到整个序列有序。原创 2023-08-09 18:25:44 · 676 阅读 · 3 评论 -
【js 二叉算法】
接下来需要创建一个二叉树类,实现二叉树的插入、遍历等操作。其中插入方法需要判断当前节点值和插入值的大小关系,选择向左或向右子树插入。首先需要定义一个节点类,包含节点值、左子节点、右子节点等属性。这里以前序、中序和后序遍历为例进行了测试,结果符合预期。原创 2023-08-09 14:41:43 · 303 阅读 · 0 评论 -
【JS常见数据结构】
JavaScript数据结构是指数据的组织方式常见的数据结构包括数组、链表、栈、队列、树、图等。在JavaScript中,数组是最常见和最基础的数据结构,而链表、栈和队列等数据结构则需要通过对象和数组等方式进行模拟。图是由节点和边组成的一种非线性数据结构,它是一组二元关系的集合。节点也称为顶点,边用于连接节点,表示它们之间的关系。每个节点可以有多个相邻节点,这些节点通过边连接在一起。节点(顶点):表示图中的对象,可以是任何对象;边:连接节点之间的线段,表示节点之间的关系;原创 2023-08-08 15:45:27 · 717 阅读 · 0 评论