数据结构与算法
钟良建呀
计算机视觉
展开
-
数据结构-栈(c++实现)
/* 数据结构-栈(stack) * 特点:先进后出,类似与向弹夹压子弹 * 操作:主要包含两大操作,压栈、弹栈 * 注:栈有栈顶和栈底,所有操作均从栈顶进行 */ #ifndef __MYSTACK_H #define __MYSTACK_H #include <iostream> using namespace std; // 类模板: //类定义 template<class T> class MyStack { public: MyStack(); // 构造函数 ~My原创 2020-08-20 22:57:52 · 111 阅读 · 0 评论 -
数据结构与算法之《树结构》
树的概念 树(tree)是一种抽象数据类型(Abstract Data Type)或是抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n个有限节点组成的一个具有层次关系的集合。它看起像一颗倒挂的数,也就是根朝上,叶朝下。所以因此而得名。 树的特点: 每个节点有零个或多个子节点 没有父节点的节点称为根节点 每一非根节点有且仅有一个父节点 除根节点外,每个子节点可以分为多个不相交的子树 树中的术语: 节点的度:一个节点含有的子树的个数称为该节点的度 树的度:一棵树中,节点的度的最大值为树原创 2020-06-08 11:05:39 · 157 阅读 · 0 评论 -
数据结构与算法之《搜索算法》
搜索算法 搜索算法用于在一个项目集合中查找一个特定的项目。搜索通常的答案是真或假,也可能是找到的某个具体值。常见的搜索算法:顺序查找、二分查找、二叉树查找、哈希查找 1.二分查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 实现过程: 假设表中元素按升序排列,将表中间位置元素与查找元素比较,如果两者相等,则查找成功;否则利用中间位置记录将表分为前、后两个子表,如果中间位置记录的元素大于查找原创 2020-06-06 22:24:56 · 179 阅读 · 0 评论 -
数据结构与算法之《排序算法》
排序算法 一种能将一串数据依照特定顺序进行排列的算法。排序算法在排序后能位置相等键值得原有秩序则称算法稳定。 1.冒泡排序——稳定 冒泡排序(Bubble Sort)算法重复遍历待排序序列,每次比较两个元素,如果它们的顺序错误就将它们进行交换。重复进行此过程,直到没有需要交换再的元素。之所以叫冒泡排序是因为随着排序算法的进行,较大元素会像一个个水中的气泡一样浮向序列末端。 算法具体流程(以开始左端,按升序排列为例): 从左端第一个元素开始,比较相邻元素大小,若第一个元素大于第二个元素就交换他们 对序列中的原创 2020-06-06 18:14:46 · 157 阅读 · 0 评论 -
数据结构与算法之《栈及队列》
栈(stack) 栈是一种容器,可存储数据元素、访问元素、删除元素,它的特点在于只能从容器的一端存数据(压栈)和取数据(弹栈),这一端被称为栈顶,与之相对应的另一端称为栈底。由于栈结构只能在一端操作,因此最后存入的元素最先被弹出,也就是所谓的后进先出(LIFO,Last In First Out).示意图如下: 栈结构可由线性表实现。 #------------------栈结构python实现---------------------# class Stack(object): """栈"""原创 2020-06-04 23:23:23 · 98 阅读 · 0 评论 -
数据结构与算法之《链表结构》
链表 定义 线性表的一种,不像顺序表连续存储数据,而是在每一个数据存储单元(节点)中存放下一数据单元的位置信息(地址)。如下图 特点 充分利用计算机的内存空间,实现灵活的动态内存管理,但数据操作相对于顺序表的连续存储效率较低。 单向链表 单向链表,也叫单链表,每个节点包含两个域,一个是元素域用于存放数据元素,一个是链接域用于链接下一节点,最后一个节点的链接域指向空值。请看下图: 图中elem表示元素域,next表示链接域,p表示链表的头结点位置,由p出发才能找到表中的任意节点 #----原创 2020-06-04 22:35:28 · 124 阅读 · 0 评论 -
数据结构与算法之《认知及顺序表》
数据结构 概念 数据结构指数据对象中数据元素之间的关系 python数据结构 内置数据结构:列表、元组、集合、字典等 扩展数据结构:栈、队列、链表等(需用户自定义) 算法与数据结构的关系 数据结构是静态描述数据元素之间的关系。算法是为解决实际问题而设计的方法。高效的程序需要在数据结构的基础上设计和选择算法。用一个公式体现二者的关系: 程序 = 算法 + 数据结构 总结:算法是为解决实际问题设计的,数据结构是算法处理问题(数据)的载体。 抽象数据类型(abstract data type) 将数据类型及其相原创 2020-06-04 21:13:10 · 142 阅读 · 0 评论 -
数据结构与算法之《算法认知》
算法 概念 算法是独立存在的一种解决问题的思想或方法。(学习算法应重点关注其实现思想) 算法的五大特性 输入:可以没有 输出:必须至少有一个输出 有穷性:能够在有限的步骤和时间内实现 确定性:算法描述不能有歧义 可行性:算法能够用计算机实现 算法效率衡量 实现算法程序的执行时间可以反映算法的效率,但对于不同的机器由于硬件配置的不同会导致同样的算法有着不同的执行时间,因此单纯依靠执行时间测定并不客观。 时间复杂度与“大O记法”: 假设计算机执行基本操作的时间固定,通过比较算法执行基本步骤的数量,即可比较客观原创 2020-06-03 23:06:50 · 169 阅读 · 0 评论