数据结构
文章平均质量分 92
zhuiluoi
这个作者很懒,什么都没留下…
展开
-
Java数据结构10-Map和Set
虽然哈希表一直在和冲突做斗争,但在实际使用过程中,我们认为哈希表的冲突率是不高的,冲突个数是可控的,也就是每个桶中的链表的长度是一个常数,所以,通常意义下,我们认为哈希表的插入/删除/查找时间复杂度是O(1)。首先,我们需要明确一点,由于我们哈希表底层数组的容量往往是小于实际要存储的关键字的数量的,这就导致一个问题,冲突的发生是必然的,但我们能做的应该是尽量的降低冲突率。选择一个随机函数,取关键字的随机函数值为它的哈希地址,即H(key) = random(key),其中random为随机数函数。原创 2024-07-05 23:51:16 · 684 阅读 · 0 评论 -
Java数据结构9-排序
快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定。原创 2024-07-05 04:51:25 · 649 阅读 · 0 评论 -
Java数据结构8-优先级队列(堆)
Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue。使用时必须导入PriorityQueue所在的包,即:PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出ClassCastException异常。原创 2024-07-03 23:29:45 · 953 阅读 · 0 评论 -
Java数据结构7-二叉树
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。注意:树形结构中,子树之间不能有交集,否则就不是树形结构。原创 2024-07-01 00:08:46 · 821 阅读 · 0 评论 -
Java数据结构6-栈与队列
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。原创 2024-06-30 03:14:16 · 859 阅读 · 0 评论 -
Java数据结构5-链表2
LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。在集合框架中,LinkedList也实现了List接口,具体如下:【说明】LinkedList实现了List接口LinkedList的底层使用了双向链表LinkedList没有实现RandomAccess接口,因此LinkedList不支持随机访问。原创 2024-06-26 02:00:21 · 623 阅读 · 0 评论 -
Java数据结构4-链表
由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除比较多的场景。因此:java集合中又引入了LinkedList,即链表结构。原创 2024-06-24 04:07:58 · 295 阅读 · 0 评论 -
Java数据结构3
在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:ArrayList是以泛型方式实现的,使用时必须要先实例化ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问ArrayList实现了Cloneable接口,表明ArrayList是可以clone的ArrayList实现了Serializable接口,表明ArrayList是支持序列化的。原创 2024-06-23 16:20:58 · 848 阅读 · 0 评论 -
Java数据结构2
在集合框架中,List是一个接口,继承自CollectionCollection也是一个接口,该接口中规范了后序容器中常用的一些方法,具体如下所示:Iterable也是一个接口,表示实现该接口的类是可以逐个元素进行遍历的,具体如下:站在数据结构的角度来看,List就是一个线性表,即n个具有相同类型元素的有限序列,在该序列上可以执行增删改查以及变量等操作List中提供了好的方法,具体如下:方法解释尾插 e将 e 插入到 index 位置尾插 c 中的元素删除 index 位置元素。原创 2024-06-13 11:25:56 · 957 阅读 · 0 评论 -
Java数据结构1
数据结构是计算机存储、组织数据的方法,指相互之间存在一种或多种特定关系的数据元素的集合原创 2024-06-05 08:49:49 · 692 阅读 · 0 评论