Loading

随笔分类 -  数据结构

摘要:排序介绍 排序算法有很多: 冒泡排序/选择排序/插入排序/归并排序/计数排序(counting sort)/基数排序(radix sort)/希尔排序/堆排序/桶排序. 简单排序: 冒泡排序 - 选择排序 - 插入排序 高级排序: 希尔排序 - 快速排序 冒泡排序 冒泡排序算法相对其他排序运行效率较 阅读全文
posted @ 2021-11-14 21:13 sunflower-js 阅读(33) 评论(0) 推荐(0)
摘要:什么是图? 图是一种与树有些相似的数据结构。 实际上,在数学的概念上,树是图的一种。 我们知道树可以用来模拟很多现实的数据结构,比如:家谱/公司组织架构等等。 那么图长什么样子呢?或者什么样的数据使用图来模拟更合适呢? 那么,什么是图呢? 我们会发现,上面的结点(其实图中叫顶点 Vertex)之间的 阅读全文
posted @ 2021-11-13 23:18 sunflower-js 阅读(76) 评论(0) 推荐(0)
摘要:♣ 树的特点: 树一般都有一个根,连接着根的是树干; 树干会发生分叉,形成许多树枝,树枝会继续分化成更小的树枝; 树枝的最后是叶子; 现实生活中很多结构都是树的抽象,模拟的树结构相当于旋转 180° 的树。 树结构对比于数组/链表/哈希表有哪些优势呢? 数组: 优点:可以通过下标值访问,效率高; 缺 阅读全文
posted @ 2021-11-11 23:24 sunflower-js
摘要:♣ 单向链表 认识链表 链表和数组 链表和数组一样,可以用于存储一系列的元素,但是链表和数组的实现机制完全不同 数组 存储多个元素,数组(或列表)可能是最常用的数据结构。 几乎每一种编程语言都有默认实现数组结构,提供了一个便利的 [] 语法来访问数组元素。 数组缺点: 数组的创建需要申请一段连续的内 阅读全文
posted @ 2021-11-08 18:41 sunflower-js 阅读(48) 评论(0) 推荐(0)
摘要:♠ 什么是栈? 数组是一个线性结构,并且可以在数组的任意位置插入和删除元素。 但是有时候,我们为了实现某些功能,必须对这种任意性加以限制。 栈和队列就是比较常见的受限的线性结构。 栈(stack)是一种运算受限的线性表: LIFO(last in first out)表示就是后进入的元素,第一个弹出 阅读全文
posted @ 2021-11-08 00:13 sunflower-js
摘要:♣ 什么是数据结构/算法? “数据结构是数据对象,以及存在于该对象的实例和 组成实例的数据元素之间的各种联系。这些联系可以 通过定义相关的函数来给出。” 《数据结构、算法与应用》 “数据结构是ADT(抽象数据类型 Abstract Data Type)的物理实现。” 《数据结构与算法分析》 “数据结 阅读全文
posted @ 2021-11-07 23:28 sunflower-js 阅读(114) 评论(0) 推荐(0)