数据结构
数据结构知识点
Yuri-Taylor
这个作者很懒,什么都没留下…
展开
-
排序算法的实现
//冒泡排序void BobbleSort(int a[], int len){ int i, j,tmp; int flag = 0; for (i = 0; i < len-1; i++) { for (j = 0; j < len - 1 - i; j++) { if (a[j] > a[j + 1]) .原创 2020-11-09 15:00:28 · 184 阅读 · 0 评论 -
排序
一.排序的概念1.排序的概念排序:排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间原创 2020-09-21 18:37:03 · 121 阅读 · 0 评论 -
栈和队列
一. 栈1.栈的概念及结构栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端,称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。2.栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 代价比较小。//静态栈typedef int STDataType;#define N 1.原创 2020-09-02 18:24:26 · 121 阅读 · 0 评论 -
二叉树
一. 树的概念及结构1.树的概念树是一种非线性的数据结构,它是由n个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。2.树的结构节点的度:一个节点含有的子树的个数称为该节点的度;叶节点或终端节点:度为0的节点称为叶节点;非终端节点或分支节点:度不..原创 2020-09-02 18:22:57 · 268 阅读 · 0 评论 -
顺序表和链表
一.线性表 线性表是n个具有相同特性的数据元素的有限序列。线性表是一种广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...... 线性表在逻辑上是线性结构,但是在物理结构上并不一定是连续的,线性表在物理存储时,通常以数组和链式结构的形式存储。二.顺序表1.顺序表的概念及结构 顺序表时用一段物理地址连续存储的存储单元依次存储数据元素的线性结构,一般采用数组存储,在数组上完成数据的增删查改。 顺序表可分为静态顺序表(使用定长数组存储)和动态顺序表...原创 2020-09-02 18:14:36 · 283 阅读 · 0 评论 -
时间复杂度和空间复杂度
一.时间复杂度1.时间复杂度的概念 算法的时间复杂度是一个函数。它定量描述了一个算法的运行时间。一个算法所花费的时间与其语句的执行次数成正比,算法中的基本操作的执行次数,为算法的时间复杂度。2.大O的渐进表示法 O:用于描述函数渐进行为的数学符号。 大O方法: a.用常数1取代运行时间中的所有加法常数; b.在修改后的运行次数函数中,只保留最高阶项; c.如果最高阶项存在且不是1,则去除与这个项目相乘的常数,得到的结...原创 2020-09-02 18:10:01 · 201 阅读 · 0 评论