数据结构与算法
敲键盘的大蚂蚁
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构与算法10:用JavaScript 实现 排序算法
**常用排序:冒泡排序 : 复杂度 O(N^2) 真实交换次数: N(N-1)/4选择排序 : 复杂度 O(N^2) 真实交换次数: N-1插入排序 : 复杂度 O(N^2)希尔排序(升级版 插入排序) : 最坏为 O(N^2) 通常好于 O(N^2)快速排序 (升级版 冒泡排序) : 平均效率 O(N * logN)// 创建列表类function ArrayList() { // 属性 this.array = []; // 方法 // 1 插入数据原创 2021-04-02 22:14:16 · 413 阅读 · 1 评论 -
数据结构与算法9:用JavaScript 实现 图 结构
常用方法:addVertex(vertex)添加顶点的方法addEdge(vertexA, vertexB)添加边的方法toString()实现toString方法BFS & DFS// 创建字典的构造函数function Dictionary() { // 字典属性 this.items = {} // 字典操作方法 // 1 添加键值对 Dictionary.prototype.set = function (key, value) {原创 2021-04-02 22:09:16 · 528 阅读 · 1 评论 -
数据结构与算法8:用JavaScript 实现 字典 结构
常用方法:set(key, value) 添加键值对has(key)判断字典中是否有某个keyremove(key)从字典中移除元素removeget(key) 根据key去获取valuekeys() 获取多有的keysvalues()获取所有的valuesize() 查看大小clear()方法// 封装字典// 创建字典的构造函数function Dictionary() { // 字典属性 this.items = {} // 字典操作方法 /原创 2021-04-02 22:02:19 · 476 阅读 · 1 评论 -
数据结构与算法7:用JavaScript 实现 搜索二叉树 结构
常用方法:insert(key) 插入数据insertNode(node, newNode) 插入节点preOrderTraversal() 先序遍历midOrderTraversal() 中序遍历postOrderTraversal() 后续遍历最值: min() / max()search(key) 搜索节点remove(key) 删除节点// 封装二叉搜索树function BinarySerachTree () { function Node (key) {原创 2021-04-02 21:55:23 · 393 阅读 · 1 评论 -
数据结构与算法6:用JavaScript 实现 哈希表 结构
哈希表(hash table ) 是一种根据关键字直接访问内存存储位置的数据结构,通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数 。常用方法:put(key, value) 插入&修改操作get(key) 获取元素remove(element) 删除元素size() 查看集合元素个数其它:自动扩容/缩容// 封装哈希表类function HashTable() { // 属性: 数组(链址法)、 记录当前数组元素原创 2021-04-02 21:46:10 · 300 阅读 · 0 评论 -
数据结构与算法5:用JavaScript 实现 集合 结构
集合(set) 是一种包含不同元素的数据结构。集合中的元素称为成员。集合的两个最重要特性是:首先,集合中的成员是无序的;其次,集合中不允许相同成员存在。当你想要创建一个数据结构用来保存一些独一无二的元素时就可以用到集合。常用方法:add方法(data) 追加元素has(data) 判断元素是否存在remove(element) 删除元素clear() 清空集合size() 查看集合元素个数values() 获取集合中所有的值集合间的操作: 交集 .union() ; 交集 .interse原创 2021-04-02 21:40:23 · 253 阅读 · 0 评论 -
数据结构与算法4:用JavaScript 实现 双向链表 结构
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。特点 :可以用一个head 和一个tail 分别指向头和尾的节点每个节点都由三部分组成:前一个节点的指针(prev)/保存元素(item)/后一个节点的指针(next)双向链表的第一个节点的prev是null双向链表的最后节点的next是null常用方法:append(data) 追加元素原创 2021-04-02 21:28:56 · 356 阅读 · 1 评论 -
数据结构与算法3:用JavaScript 实现 单向链表 结构
单向链表 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点。优点 :(1)单个结点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小(2)结点的删除非常方便,不需要像线性结构那样移动剩下的数据(3)结点的访问方便,可以通过循环或者递归的方法访问到任意数据,但是平均的访问效率低于线性表常用方法:ap原创 2021-04-02 21:07:10 · 317 阅读 · 0 评论 -
数据结构与算法2:用JavaScript 实现 队列 结构
队列 区别于 栈 的 【后进先出】 ,数据结构特点为 【先进先出】。用数组较易实现,本文为区别于栈结构,故封装 优先队列 ,即加入权重指标(权重越高,则优先输出)。常用方法:enqueue(element, priority) 插入元素dequeue() 删除顶部队列元素front() 查看队列顶部元素isEmpty() 判断是否为空size() 查看队列个数toString() 方法// 封装优先队列function PriorityQueue(){ // 新建一个队列元素原创 2021-04-01 19:03:37 · 229 阅读 · 0 评论 -
数据结构与算法1:用JavaScript 实现 栈 结构
数据结构与算法1:用JavaScript 实现 栈 结构栈(stack)又名堆栈 ,数据特点:后进先出。由于其数据形式特点,故用数组搭建。常用方法有:push() 入栈pop() 出栈peek() 查看栈顶元素isEmpty() 判断是否为空length() 获取栈中元素的个数toString() 方法// 封装栈类function Stack { // 栈中的属性 this.items = []; // 栈的相关操作 // 1 将元素压入栈原创 2021-04-01 18:45:44 · 285 阅读 · 0 评论
分享