本章将简单介绍数据结构,欢迎大家点赞➕收藏,蟹蟹!!!💕
🌈个人主页:404_NOT_FOUND@
1.简介
- 是一门基础学科
- 研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据和修改数据
2.数据结构可以分为三类
2.1 线性数据结构
线性数据结构是指数据元素之间存在一对一的关系,即每个元素都有一个前驱和一个后继元素,形成线性序列
常见的线性数据结构包括:
数组(Array):一组连续存储的元素,通过索引进行访问。
链表(Linked List):由一系列节点组成,每个节点包含数据和指向下一个节点的引用。
栈(Stack):后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。
队列(Queue):先进先出(FIFO)的数据结构,允许在队尾插入元素,在队首删除元素。
2.2 树型数据结构
树形结构是数据结构中的一种逻辑关系结构,在此逻辑结构中数据元素之间满足一对多的分层结构关系,也称分层结构
常见的树型数据结构包括:
二叉树、二分搜索树、AVL树,红黑树、堆、Trie、线段树、并查集…
2.3 图结构数据结构
图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。结点也可以称为顶点
常见的图型数据结构包括:
邻接矩阵、邻接表
3.排序算法
排序算法是一系列对数据进行排序的算法,其目的是将一组数据按照特定的顺序进行排列。常见的排序算法有以下几种:
①冒泡排序(Bubble Sort):通过重复遍历待排序的数列,每次比较两个相邻元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端
②选择排序(Selection Sort):工作原理是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完
③插入排序(Insertion Sort):通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间
④快速排序(Quick Sort):通过一个划分操作将待排序的数列分为独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数列变成有序序列
⑤归并排序(Merge Sort):采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序
⑥堆排序(Heap Sort):利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点
每种排序算法都有其适用的场景和优缺点,选择合适的排序算法可以提高程序的效率和性能
4.为什么学习数据结构
根据不同的应用,灵活选择最合适的数据结构
数据结构 + 算法 = 程序
5.开发环境
IDEA, JDK8+