- 博客(18)
- 收藏
- 关注
原创 <Stack和Queue>
栈:通用数据结构,不限于编程语言或运行时环境。虚拟机栈:JVM的特定实现,与线程绑定,管理方法调用的生命周期。栈帧:虚拟机栈的组成部分,保存单个方法调用的上下文信息。2.队列(Queue)2.1概念队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear出队列:进行删除操作的一端称为队头Head/Front2.2队列的使用在Java中,
2025-06-12 03:00:10
742
原创 <LinkedList与链表>
此时,两个指针每移动一次,之间的距离就缩小一步,不会出现每次刚好是套圈的情况,因此:在慢指针走到一圈之前,快指针肯定是可以追上慢指针的,即相遇。快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表起始位置开始运行,如果链表带环则一定会在环中相遇,否则快指针率先走到链表的末尾。此时按照上诉方法来绕环运动,每次快指针走3步,慢指针走1步,是永远不会相遇的,快指刚好将慢指针套圈了,因此不行。只能快指针走两步,慢指针走一步才可以,因为环的最小长度是1,即使套圈了两个也在相同的位置。
2025-06-11 11:23:27
799
原创 <ArrayList与顺序表>
线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结 构,常见的线性表:顺序表、链表、栈、队列...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物 理上存储时,通常以数组和链式结构的形式存储,如图所示1234567链表如下元素类型相同。元素顺序固定,逻辑上呈线性排列。支持增删改查等基本操作。
2025-06-10 11:41:10
945
原创 <认识List>
1.什么是List在集合中,List是一个接口,继承自List是Java集合框架中的一个接口,继承自Collection接口,定义有序、可重复的元素集合。由于是接口,不能直接实例化,需通过具体实现类(如ArrayListLinkedList等)创建对象。具体如下:Iterable也是一个接口,表示实现该接口的类是可以逐个元素进行遍历的,具体如下:站在数据结构的角度来看,2.常见的接口介绍booleanadd(E e)尾插evoidadd将e插入到index位置。
2025-06-06 02:27:07
1064
原创 包装类&简单认识泛型<数据结构>
虽然在这种情况下,当前数组任何数据都可以存放,但是,更多情况下,我们还是希望他只能够持有一种数据类型。要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的 代码,这种刻板的限制对代码的束缚就会很大。此时,就需要把类型,作为参数传递。需要什么类型,就传入什么类型。号下标本身就是字符串,但是确编译报错。必须进行强制类型转换。从代码上讲,就是对类型实现了参数化。2.1为什么范型不能实例化范型类型数组。一般的类和方法,只能使用具体的类型。编程思想》对泛型的介绍。所有类的父类,默认为。
2025-06-06 01:49:52
411
原创 常见时间复杂度举例<数据结构>
通过计算分析发现基本操作递归了 2的n次方次,时间复杂度为O(2n次方 )。(建议画图递归栈帧的二叉树讲解)时间复杂度一般看最坏,时间复杂度为 O(N^2)O阶方法,时间复杂度为 O(1)n/2 两次二分剩下:n/2/2 = n/4)因为二分查找每次排除掉一半的不适合值,阶方法知道,时间复杂度为O(N)2计算func2的时间复杂度?(建议通过折纸查找的方式讲解。通过计算分析发现基本操作递归了。1 计算func的时间复杂度。,时间复杂度为:O(N+M)
2025-04-09 01:36:23
426
原创 初始 时间和空间复杂度<数据结构>
一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。一个算法所花费的时间与其中语句的执行次数成正比例,在计算机发展的早期,计算机的存储容量很小。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要。1.首先要知道什么是复杂度,我们就要明白,如何去衡量一个算法的好坏。、在修改后的运行次数函数中,只保留最高阶项。
2025-04-08 21:07:32
506
原创 初识复杂度(没有例题讲解)
举个栗子:某算法的时间复杂度为:T(N) = O(f(N))\n这个式子的含义存在一个点 n0 ,使得 当 N > n0,T(N) < f(N),从函数图像上表现为 T(N) 渐进 f(N) ,f(N) 的增长率 大于 T(N)。一个算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。f(n)=3,根据推导大O阶的规则,这个算法的时间复杂度为O(1),我们称之为常数阶。时间复杂度可以说是一个模型,这个模型描述了算法的运行时间随问题规模 N 的变化情况。
2023-11-27 20:49:33
95
1
原创 面向对象初步认识
简单而言就是由类产生对象的过程就是实例化//通过new 关键字实例化对象//1.为对象分配内存//2.调用合适构造方法[构造方法不止一个]实例化对象后如何访问对象中的车成员呢?一般是通过对象的引用 + 点号 来访问成员变量 和 成员方法在定义一个类的时候,类中一般包含成员变量 + 成员方法,成员变量没有初始化的时候会有一个默认的零值,基本类型对应的零值,Boolean是false;引用类型是null。
2023-11-11 00:28:25
159
2
原创 小白的目标和理想
人们都说万事开头难嘛,包括对学习来说也是不例外,所以对于学习编程呢,肯定是有一个好的领路人才能更好的投入学习或者说更早的去掌握这一门技术,但是打铁还得靠本身,自我的努力也是成功必不可少的路径,所以我对我自己的目标就是:多想,多做,多看。在对于学习编程这块的投入时间呢,我觉得比如现在是假期时间嘛,每天投入3~4个小时还是可以轻松做到的,虽然是在还有兼职的情况是抽出时间去学习,过程是很累,可是我觉得,我还年轻,吃苦趁现在。
2023-07-10 16:07:50
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅