数据结构
文章平均质量分 94
北川_
这个作者很懒,什么都没留下…
展开
-
八大排序算法
目录直接插入排序希尔排序(缩小增量排序)直接插入排序直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移。原创 2022-04-18 09:57:13 · 321 阅读 · 3 评论 -
AVL树详解
目录AVL树的概念AVL树节点的定义AVL树如何高度平衡?右单旋左单旋左右双旋AVL树的概念二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。 因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整), 即可降低树的高度,从而减少平均搜索长度。AVL原创 2022-03-09 09:39:54 · 1596 阅读 · 11 评论 -
二叉搜索树
目录二叉搜索树概念二叉搜索树节点的定义二叉搜索树的插入二叉搜索树的查找二叉搜索树的删除二叉搜索树的应用二叉搜索树的性能分析二叉搜索树概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树下图即为二叉搜索树二叉搜索树节点的定义template<class K>struct BSTreeNode{ BSTr原创 2022-03-08 09:57:58 · 1407 阅读 · 11 评论 -
数据结构之单链表
目录简介简介线性表的顺序存储结构有一个缺点就是插入和删除时需要移动大量元素,这会耗费许多时间。能不能想办法解决呢?干脆所有的元素都不要考虑相邻位置了,哪有空位就到哪里,让每一个元素都知道它下一个元素的位置在哪里。线性表链式存储结构: 用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。...原创 2021-08-29 20:35:12 · 788 阅读 · 21 评论 -
数据结构之顺序表
一级目录线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序映像。通常,称这种存储结构的线性表为顺序表(Sequential List)。其特点是,逻辑上相邻的数据元素,其物理次序也是相邻的。...原创 2021-08-24 20:27:41 · 1567 阅读 · 24 评论 -
时间复杂度和空间复杂度
文章目录算法的复杂度时间复杂度算法的复杂度时间复杂度算法复杂度:算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢空间复杂度主要衡量一个算法运行所需要的额外空间...原创 2021-08-19 22:52:57 · 499 阅读 · 31 评论