![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS版数据结构
文章平均质量分 78
litchi dream
这个作者很懒,什么都没留下…
展开
-
JS版数据结构之 排序(冒泡、选择、插入、希尔、归并、快速)
文章目录冒泡排序选择排序插入排序希尔排序冒泡排序冒泡排序是升序排列核心思想:让数组的当前项和后一项进行比较,如果当前项比后一项大,就交换位置。时间复杂度:O(n^2)空间复杂度:O(1)const arr = [12, 8, 24, 16, 1, 34, 23, 12, 54]const bubble = (arr) => { // 控制比较的轮数 for (let i = 0; i < arr.length - 1; i++) { for (let j = 0;原创 2021-08-28 22:56:44 · 173 阅读 · 0 评论 -
JS版数据结构之 算法复杂度(时间复杂度、空间复杂度)
文章目录一、算法复杂度1. 时间维度2. 空间维度一、算法复杂度算法是指解决问题的方案准确而完整的描述,是一系列解决问题的清晰指令,算法代表着:用系统的方法解决问题的策略机制。算法研究的是如何花最少的时间、最少的内存空间完成相同的需求。1. 时间维度时间维度:执行当前算法所消耗的时间,时间越短,算法越好。时间复杂度:一个代码执行的时间趋势,执行次数与执行参数息息相关,如果一个问题的规模是n,解决这个问题的某一算法需要时间T(n)。T(n) = O(f(n)) //大O表示法O:某个算法耗时与原创 2021-08-26 12:37:56 · 683 阅读 · 0 评论 -
JS版数据结构之 图 ( 图的遍历、最短路径 )
文章目录一、图1. 图的分类2. 图的存储结构3.实现4.遍历(1)广度优先遍历(2)深度优先遍历5.最短路径一、图1. 图的分类无向图:边没有方向。边与边之间的关系仅仅是连接。有向图:边不仅连接顶点,并具有方向性.带权图:边带着权重。2. 图的存储结构顺序存储链式存储线性表:仅有的关系就是线性关系。树:有清晰的层次关系。图:集合中每一个元素都可能有关系,图由顶点和边构成,所以要存储图形结构的信息,无非就是存储图的顶点和边。如果使用数组,存储边时会比较复杂。因此我们采用以下两原创 2021-08-25 23:18:33 · 839 阅读 · 0 评论 -
JS版数据结构之 树、搜索二叉树、平衡二叉树、红黑树
文章目录一、树二、二叉树1. 定义三、二叉搜索树1.定义2.实现3.遍历(1)先序遍历(2)中序遍历(3)后序遍历(4)最大值、最小值、查找四、平衡二叉树1.定义五、红黑树1.定义2.特性一、树双亲表示法: 顺序存储各个结点时,给各个结点添加一个变量,记录其父结点的位置。孩子表示法: 建立多个指针域,指向它所有子节点的地址,任何一个结点都会掌握他所有子节点的信息。孩子兄弟表示法: 从树的根结点开始依次采用链表去存储各个结点的孩子结点和兄弟结点,可以把一颗普通的树转换为二叉树。二、二叉树1. 定义原创 2021-08-24 23:50:22 · 206 阅读 · 0 评论 -
JS版数据结构之 链表、原型链、哈希表
文章目录链表1.定义2.实现链表1.定义链表:线性表:0个或n个数据元素的有限序列。物理存储结构:顺序存储:用一段连续的存储单元依次存储线性表的数据元素。链式存储:内存地址可以是连续的也可以是不连续的,用指针来存放数据元素的地址。2.实现// 链点类class Node { constructor(element) { this.element = element this.next = null }}// 链表class LikedList { co原创 2021-08-23 12:43:55 · 164 阅读 · 0 评论 -
JS版数据结构之 栈与队列、异步线程、任务队列
文章目录一、栈1.定义2.实现3.扩展(1)清空数组的三种方法4.栈的应用(1)十进制转二进制二、队列一、栈1.定义栈:一种受限制的线性表,遵循后近先出(Last In First Out)2.实现class Stack { constructor() { this.items = [] } // 选择一个元素到栈顶 push(ele) { this.items.push(ele) } // 出栈 pop() { this.items.pop原创 2021-08-22 19:44:49 · 172 阅读 · 0 评论