数据结构
数据结构知识总结
小龙呮
这个作者很懒,什么都没留下…
展开
-
【数据结构】排序算法总结
排序的概念及其运用 1.排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 2.稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。 3.内部排序:数据元素全部放在内存中的排序。 4.外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动原创 2020-07-25 22:28:24 · 160 阅读 · 0 评论 -
【数据结构】二叉树
树概念及结构 1.1 树的概念 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点,称为根结点,根节点没有前驱结点; 除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继; 树是递归定义的。 节点的度:一个节原创 2020-07-08 12:47:53 · 162 阅读 · 0 评论 -
【数据结构】栈和队列
栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。 出栈:栈的删除操作叫做出栈。出数据也在栈顶。 1.2栈的实现 栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。 // 下面是定长的静态栈的结构,实际中一般不实用,所以我们原创 2020-06-27 10:29:58 · 238 阅读 · 0 评论 -
【数据结构】顺序表和链表
1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 2.顺序表 概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般可以分为: 静态顺序表:使用定长数组存储。原创 2020-06-15 19:21:49 · 273 阅读 · 0 评论 -
【数据结构】时间复杂度和空间复杂度
时间复杂度 概念:算法中的基本操作的执行次数,为算法的时间复杂度。 大O的渐进表示法:大O符号(Big O notation)是用于描述函数渐进行为的数学符号。 推导大O阶方法: 1、用常数1取代运行时间中的所有加法常数。 2、在修改后的运行次数函数中,只保留最高阶项。 3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。 在实际中一般情况关注的是算法的最坏运行情况,所以数组中搜索数据时间复杂度为O(N)。 空间复杂度 概念:空间复杂度是对一个算法在运行过程中临时占用存储空间大小原创 2020-06-08 09:05:06 · 150 阅读 · 0 评论