随笔分类 -  数据结构和算法

1
以《大话数据结构》为蓝本,作为学习记录。
摘要:java 手动实现单链表(尾插法和头插法) 阅读全文
posted @ 2020-05-18 14:57 Rainyn 阅读(1345) 评论(0) 推荐(0) 编辑
摘要:为什么你学不会递归?刷题几个月,告别递归,谈谈我的经验 阅读全文
posted @ 2020-05-14 15:39 Rainyn 阅读(234) 评论(0) 推荐(0) 编辑
摘要:方法1 :leetcode 解法 方法2: package arithmetic; import java.util.LinkedHashMap; import java.util.Map; /** * @Author yuanjingkun * @create 2020/4/29 17:43 */ 阅读全文
posted @ 2020-04-28 19:42 Rainyn 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-02-10 13:11 Rainyn 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-02-02 16:13 Rainyn 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-02-02 16:12 Rainyn 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-02-02 11:41 Rainyn 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-02-02 11:39 Rainyn 阅读(177) 评论(0) 推荐(0) 编辑
摘要:递归学习 阅读全文
posted @ 2019-05-09 19:17 Rainyn 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-01-04 18:10 Rainyn 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-01-04 17:27 Rainyn 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-04-19 09:53 Rainyn 阅读(251) 评论(0) 推荐(0) 编辑
摘要:1.获取链表第i个数据的算法思路 2.单链表第i个数据插入结点的算法思路 3.单链表第i个数据删除结点的算法思路 分析一下刚才我们讲解的单链表插入和删除算法,我们发现,它们其实都是由两部分组成:第一部分就是遍历查找第i个结点;第二部分就是插入和删除结点。 4.单链表整表创建的算法思路 生成一新结点赋 阅读全文
posted @ 2018-04-13 00:59 Rainyn 阅读(11010) 评论(0) 推荐(0) 编辑
摘要:1.单链表 n个结点(ai的存储映像)链结成一个链表,即为线性表(a1,a2,...,an)的链式存储结构,因为此链表的每个结点中只包含一个指针域,所以叫做单链表。单链表正是通过每个结点的指针域将线性表的数据元素按其逻辑次序链接在一起 有时,为了更加方便地对链表进行操作,会在单链表的第一个结点前附设 阅读全文
posted @ 2018-04-10 00:58 Rainyn 阅读(201) 评论(0) 推荐(0) 编辑
摘要:1.描述顺序存储结构需要三个属性 存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置 线性表的最大存储容量:数组长度MaxSize 线性表的当前长度:length 2.插入算法的思路 3、删除算法的思路 4、线性表的顺序存储结构的优缺点 优点: 无须为表示表中元素之间的逻辑关系而增 阅读全文
posted @ 2018-04-08 22:06 Rainyn 阅读(251) 评论(0) 推荐(0) 编辑
摘要:常见时间复杂度还有:nlogn阶,立方阶,指数阶O(2^n)等耗费时间:O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2^n)<O(n!)<O(n^n)最坏情况与平均情况:***平均运行时间是期望的运行时间。***最坏运行时间是一种保证,在应用中,这是一种最重要的 阅读全文
posted @ 2018-04-07 23:34 Rainyn 阅读(1233) 评论(0) 推荐(0) 编辑
摘要:算法时间复杂度的定义:进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复 阅读全文
posted @ 2018-04-07 23:30 Rainyn 阅读(394) 评论(0) 推荐(0) 编辑
摘要:如何度量算法的效率?效率一般指算法的执行时间。那么如何度量算法的执行时间?① 事后统计方法:【可以把算法跑若干次,用计时器计时】通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率高低。 缺陷:必须依据算法,事先编制好测试程序,大量耗费时间精力。而且对 阅读全文
posted @ 2018-04-04 00:04 Rainyn 阅读(300) 评论(0) 推荐(0) 编辑
摘要:算法:对某一问题的解决方法的步骤的总结,计算机中表现为指令的有限序列,每条指令表示多个操作。算法包括5个方面:输入,输出,有穷性,确定性,可行性。输入:0或至少1个输入(可以理解为入参)。输出:至少一个。有穷性:算法通过有限步骤解决问题。不会死循环。确定性:算法解决每个步骤有特定的作用;通常算法只有 阅读全文
posted @ 2018-04-02 23:03 Rainyn 阅读(196) 评论(0) 推荐(0) 编辑
摘要:什么是数据结构?程序设计=数据结构+算法数据结构就是关系,即数据元素相互之间存在的一种或多种特定关系的集合。 数据结构分为逻辑结构和物理结构。 逻辑结构:数据对象中数据元素之间的相互关系 物理结构:数据的逻辑结构在计算机中的存储形式。(非主要) 四大逻辑结构:1. 集合结构:结构中的数据元素同属 阅读全文
posted @ 2018-04-02 22:19 Rainyn 阅读(126) 评论(0) 推荐(0) 编辑

1