数据结构
数据结构学习过程笔记
oo于野
这个作者很懒,什么都没留下…
展开
-
快速排序算法实现
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列:3 1 2 5 4 6 9 7 10 8在初始状态下,转载 2020-08-16 02:12:10 · 87 阅读 · 0 评论 -
数据结构之深度优先和广度优先遍历
文章目录图为什么要有图图的常用概念图的表示方式邻接矩阵邻接表图的深度优先遍历深度优先遍历基本思想深度优先遍历算法步骤深度优先算法的代码实现图的广度优先遍历广度优先遍历基本思想广度优先遍历算法步骤广度优先算法的代码实现图结构完整代码图为什么要有图1)前面我们学了线性表和树2)线性表局限于一个直接前驱和一个直接后继的关系3)树也只能有一个直接前驱也就是父节点4)当我们需要表示多对多的关系时,这里我们就用到了图。图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。结点也可原创 2020-08-14 11:12:26 · 3887 阅读 · 0 评论 -
数据结构常见树结构详细整理
文章目录树结构为什么需要树这种数据结构二叉树二叉树二叉树遍历的说明二叉树遍历查找的说明树结构为什么需要树这种数据结构二叉树二叉树二叉树遍历的说明二叉树遍历查找的说明二叉树删除二叉树的遍历,查找以及删除 代码顺序存储二叉树赫夫曼树**赫夫曼树几个重要概念和举例说明**赫夫曼编码赫夫曼树的具体实现代码二叉排序树**二叉排序树介绍****二叉排序树创建和遍历****二叉排序树的删除**平衡二叉树(AVL树)基本介绍应用案例-单旋转(左旋转 )应用案例-单旋转(右旋转)双旋转多路查找树二叉树与B树**多叉树**B原创 2020-08-14 10:50:45 · 1944 阅读 · 0 评论 -
二分插值斐波那契查找算法和哈希表
查找算法介绍在java中,我们常用的查找有四种:*1) 顺序(线性)查找2) 二分查找/折半查找3) 插值查找4) 斐波那契查找1) 顺序(线性)查找 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。2) 二分查找/折半查找二分查找的思路分析首先确定该数组的中间的下标mid = (left + right) / 2然后让需要查找的数 findVal 和 arr[原创 2020-08-14 10:37:14 · 440 阅读 · 0 评论 -
数据结构常见八大排序算法java实现详细整理
排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。在这里插入图片描述冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐 向上冒。因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序原创 2020-08-14 10:33:42 · 317 阅读 · 1 评论 -
线性结构非线性结构和递归
数据结构包括:线性结构和非线性结构。线行结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不通的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表成为顺序表,顺序表的存储元素是连续的链式存储的线性表称为链表,链表的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组,队列,链表和栈非线性结构包括:二维数组,多维数组,广义表,树结构,图结构单向链表不能自我删除 需要辅助节点来找到待删除节点的前一个节点双向链原创 2020-08-14 10:31:59 · 668 阅读 · 0 评论