数据结构/算法
文章平均质量分 93
一些常见算法的JavaScript实现
fly丶知秋
这个作者很懒,什么都没留下…
展开
-
删除排序数组中的重复项--leetcode算法题
题目来自于leetcode题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出...原创 2019-08-28 11:58:00 · 86 阅读 · 0 评论 -
二进制求和
题目来自于leetcode题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"解题思路:首先让两个字符串等长,若不等长,在短的字符串前补零把字符串装换成数组遍历所有的位数,同...原创 2019-08-28 13:53:00 · 49 阅读 · 0 评论 -
数据结构之二叉搜索树(BST)--JavaScript实现
原理:叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二叉排序树变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。每次插入的新的结点都是二叉排序树上新的叶子结点,在进行插入操作时,不必移动其它结点,只需改动某个结点的指针,由空变为非空即可。搜索,插入,删除的复杂度等于树高,O(lo...原创 2018-06-18 21:21:00 · 97 阅读 · 0 评论 -
JavaScript实现的7种排序算法
所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。对于排序,我们首先要求其具有一定的稳定性,即当两个相同的元素同时出现于某个序列之中,则经过一定的排序算法之后,两者在排序前后的相对位置不发生变化。换言之,即便是两个完全相同的元素,它们在排序过程中也是各有区别的,不允许...原创 2021-07-02 11:36:00 · 224 阅读 · 0 评论 -
数据结构之Set | 让我们一块来学习数据结构
数组(列表)、栈、队列和链表这些顺序数据结构对你来说应该不陌生了。现在我们要学习集合,这是一种不允许值重复的顺序数据结构。我们将要学到如何创建集合这种数据结构,如何添加和移除值,如何搜索值是否存在。你也会学到如何进行并集、交集、差集等数学运算。本章内容包括:从头创建一个 Set 类用 Set 来进行数学运算构建数据集合集合是由一组无序且唯一(即不能重复)的项组成的。该数据结构使...原创 2021-05-12 10:15:00 · 223 阅读 · 0 评论 -
二叉搜索树BST
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它可以是一棵空树,也可以是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用...原创 2021-04-20 08:55:00 · 152 阅读 · 0 评论 -
数据结构之List | 让我们一块来学习数据结构
列表[List]的定义列表是一组有序的数据。每个列表中的数据项称为元素。在 JavaScript 中,列表中的元素 可以是任意数据类型。列表中可以保存多少元素并没有事先限定,实际使用时元素的数量 受到程序内存的限制。不包含任何元素的列表称为空列表。列表中包含元素的个数称为列表的 length。在内部实 现上,用一个变量 listSize 保存列表中元素的个数。可以在列表末尾 append 一...原创 2021-04-26 09:00:00 · 461 阅读 · 0 评论 -
数据结构之Stack | 让我们一块来学习数据结构
栈的介绍栈就是和列表类似的一种数据结构,它可用来解决计算机世界里的很多问题。栈是一种高 效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且容易实现。 栈的使用遍布程序语言实现的方方面面,从表达式求值到处理函数调用栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。咖啡厅内 的一摞盘子是现实世界中常见的栈的例子。只能从最上面取盘子,盘子洗净后,也只能摞 在这...原创 2021-04-26 12:00:00 · 165 阅读 · 0 评论 -
数据结构之Queue | 让我们一块来学习数据结构
前面的两篇文章分别介绍了List和Stack,下面让我们一起来学习Queue数据结构之List | 让我们一块来学习数据结构数据结构之Stack | 让我们一块来学习数据结构队列的概况队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出,这点和栈不一样,在栈中,最后入栈的元素反而被优先处理。可以将队列想象成在银行前排队的人群,排在最前...原创 2021-04-27 09:26:00 · 418 阅读 · 0 评论 -
数据结构之LinkedList | 让我们一块来学习数据结构
上一篇文章中使用列表(List)对数据排序,当时底层储存数据的数据结构是数组。本文将讨论另外一种列表:链表。我们会解释为什么有时链表优于数组,还会实现一个基于对象的链表。下面让我们一起来学习LinkedList。数据结构之List | 让我们一块来学习数据结构数据结构之Stack | 让我们一块来学习数据结构数据结构之Queue | 让我们一块来学习数据结构二叉搜索树BST数组的缺点...原创 2021-04-29 09:41:00 · 384 阅读 · 0 评论