
数据结构与算法
文章平均质量分 69
数据结构包含:存储机构和逻辑结构两个层次
算法:针对上面结构设计出能够使用的方法。
iloveyankitty
陆续会发表一些文章,包含自己整理的,借鉴前辈的经验、文章、论文。。。
数据结构相关知识、图像处理相关的知识、经常使用的工具、自己觉得很厉害文章等。。。
如果在我的文章中知道和前辈们相同的文章,在这里对前辈说声“对不起”,因为有的东西整理了很长一段时间了,现在才想起来归纳。
在文章中有不对是地方请指正,实现同一种功能,有不同的实现方法;也是一个相互学习的过程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查找表算法
查找表是由同一类型的数据元素构成的集合。一般对于查找表有一下几种操作:1、在查找表中查找某个具体的数据元素;2、在查找表中插入数据元素;3、从查找表中删除数据元素。静态查找表和动态查找表在查找表中只做查找操作,不带动表中数据元素,称此类查找表为静态查找表;反之,在查找表中查找操作的同时进行插入数据或者删除数据的操作,称此类表为动态查找表。静态查找表既可以使用顺序表表示,也可以使用链表结构表示。虽然一个是数组、一个链表,但两者在做查找操作时,基本上大同小异。顺序查找的实现静态查找表用顺序存转载 2021-03-12 09:44:36 · 4384 阅读 · 0 评论 -
顺序存储和链表存储的优缺点
1.顺序表存储(典型的数组)原理:顺序表存储是将数据元素放到一块连续的内存存储空间,相邻数据元素的存放地址也相邻(逻辑与物理统一)。优点:(1)空间利用率高。(局部性原理,连续存放,命中率高)(2)存取速度高效,通过下标来直接存储。缺点:(1)插入和删除比较慢,比如:插入或者删除一个元素时,整个表需要遍历移动元素来重新排一次顺序。(2)不可以增长长度,有空间限制,当需要存取的元素个数可能多于顺序表的元素个数时,会出现"溢出"问题.当元素个数远少于预先分配的空间时,空间浪费巨大。时间性能 :查找转载 2021-03-11 16:28:33 · 6502 阅读 · 1 评论 -
时间复杂度和空间复杂度浅谈
在学习具体的数据结构和算法之前,每一位初学者都要掌握一个技能,即善于运用时间复杂度和空间复杂度来衡量一个算法的运行效率。所谓算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但耗费的时间和资源肯定有所差异。就比如拧一个螺母,扳手和钳子都可以胜任,但使用钳子拧螺母肯定没有扳手的效率高。图 1 解决问题的方式有多种这也就意味着,如果解决问题的算法有多种,我们就需要从中选出最好的那一个。那么,怎么判断哪个算法更好(或者更优)呢?“好”算法的标准解决一个问题的方法可能有.转载 2020-12-21 14:25:45 · 198 阅读 · 0 评论 -
排序算法
0、排序算法说明0.1 排序的定义 对一序列对象根据某个关键字进行排序。 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度: 一个算法执行所耗费的时间。 空间复杂度:运行完一个程序所需内存的大小。 0.3 算法总结...转载 2020-12-15 13:52:36 · 238 阅读 · 0 评论 -
递归函数解析2020-12-11
自述:第一次接触递归函数时,不理解在函数内部为什么有调用本身?为什么会使用递归函数?有什么优点?调用本身后再次进入递归函数体内,怎么退出第二次甚至是第n次的递归函数,有没有条件来判断退出?退出的顺序是什么样子的?进入递归函数10次,退出是退出10次还是一次就能够退出? 下面就带着上面的 问题来看下本文章吧...原创 2020-12-09 13:28:22 · 2368 阅读 · 0 评论 -
二叉树应用详解
上一篇文章简单的介绍了数据结构有哪些,要遵循的一些规则,今天就介绍二叉树。一、基本概念每个节点最多有两颗子树,左子树和右子树,次序不能颠倒。性质:1、非空二叉树的第n层上至多有2^(n-1)个元素。2、深度为h的二叉树至多有2^h-1个结点。满二叉树:所有终端都在同一层次,且非终端结点的度数为2。在满二叉树中若其深度为h,则其所包含的结点数必为2^h-1。完全二叉树:除了最大的层次即成为一颗满二叉树且层次最大那层所有的结点均向左靠齐,即集中在左面的位置上,不能有空位置转载 2020-12-07 16:19:51 · 2213 阅读 · 0 评论 -
浅谈数据结构
浅谈数据结构一、常见的数据结构:数据存储常用的结构有:栈、队列、数组(堆)、链表、红黑树(二叉树)等。栈:堆栈,stack,又称栈,它是运算受限的线性表,其限制是仅在一端进行插入和删除操作,不允许在其他的位置进行添加、查找、删除等操作。特点:先进后出(即先存进去的元素,要在它后面的元素依次取出后,才能取出该元素)。如:子弹压进弹夹,先压进去的子弹在下面,后压进去的在上面,开枪时,后压进的子弹先打出,然后才能打出下面的子弹。 栈的入口和出口都处于栈的顶端位置。 ...转载 2020-12-07 11:37:22 · 137 阅读 · 0 评论