![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 96
姜西西_
这个作者很懒,什么都没留下…
展开
-
反射、枚举以及lambda表达式
Java的反射(reflection)机制是在。原创 2024-04-17 20:45:05 · 655 阅读 · 0 评论 -
Map Set
以前常见的搜索方式有:1.直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢2.二分查找,时间复杂度为 O(log2N),但搜索前必须要求序列是有序的上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找比如:1.根据姓名查询考试成绩2.通讯录,即根据姓名查询联系方式3.不重复集合,即需要先搜索关键字是否已经在集合中可能在查找时进行一些插入和删除的操作,即动态查找,那上述两种方式就不太适合了,本节介绍的Map和Set。原创 2024-03-27 20:03:50 · 986 阅读 · 0 评论 -
搜索树, 哈希表
发现违背了搜索树的定义!原创 2024-04-15 19:45:29 · 793 阅读 · 0 评论 -
冒泡排序 快速排序 归并排序 其他排序
书接上回..目录2.3 交换排序2.3.1冒泡排序2.3.2 快速排序快速排序的优化:快速排序非递归2.4 归并排序基本思想归并排序非递归海量数据的排序问题 排序算法时间空间复杂度和稳定性总结四. 其他非基于比较排序 (了解)基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。遍历数组, 将最大值移动到最后, 再次遍历, 将第二大值移动到倒数第二个位置, 以此类推【冒泡排序的特性总结】快速原创 2024-03-26 19:53:44 · 1046 阅读 · 0 评论 -
直接插入排序 希尔排序 选择排序 堆排序
直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用时间复杂度:O(N^2)空间复杂度:O(1)稳定性:不稳定。原创 2024-03-24 17:40:06 · 890 阅读 · 1 评论 -
优先级队列(堆)(2)
1.原创 2024-03-20 20:50:03 · 886 阅读 · 0 评论 -
优先级队列(堆)(1)
对于普通的序列{ 1,5,3,8,7,6 }, 假设要创建。原创 2024-03-13 16:49:41 · 847 阅读 · 0 评论 -
二叉树(1)
树是一种的数据结构,它是由nn>=0)个有限结点组成一个具有层次关系的集合。。它具有以下的特点:1. 有一个特殊的结点,称为根结点,根结点没有前驱结点2. 除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1T2......Tm,其中每一个集合Ti (1 <= i <= m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继3. 树是递归定义的。:一个结点含有子树的个数称为该结点的度;如上图:A的度为6。原创 2024-02-29 17:13:11 · 879 阅读 · 1 评论 -
栈的概念及应用
一种特殊的线性表,其。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO)的原则。压栈:栈的插入操作叫做进栈压栈入栈,。出栈:栈的删除操作叫做出栈。。从上图中可以看到,Stack继承了VectorVector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。原创 2024-02-27 20:04:21 · 838 阅读 · 0 评论 -
顺序表ArrayList及应用
在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:说明】(了解)是以泛型方式实现的,使用时必须要先实例化实现了接口,表明ArrayList支持随机访问实现了Cloneable接口,表明ArrayList是可以clone的实现了接口,表明ArrayList是支持序列化的5.和Vector不同,ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector。原创 2023-12-22 17:25:06 · 814 阅读 · 1 评论 -
时间复杂度 空间复杂度 ---java
。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。原创 2023-11-23 15:19:49 · 64 阅读 · 4 评论