Java数据结构
文章平均质量分 71
HDLaZy
生活不止眼前的CRUD,还有远方的框架源码!
展开
-
Java数据结构-Map&Set
1:SetSet适合动态查找的集合容器。set底层是纯K模型HashSet:作为set接口的主要实现类,线程不安全,可以存储null值LinkedHashSet:HashSet的子类TreeSet:使用红黑树存储HashSet:底层为 数组+链表 HashSet:存储元素不重复,且无序(存储数据并非按照底层数组的索引顺序添加) public class HashSet<E> extends AbstractSet<E> implements Set&l原创 2022-05-19 14:03:09 · 184 阅读 · 0 评论 -
归并排序及排序总结-Java版
1:归并排序归并排序: 是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序-归并排序:时间复杂度:O(Nlog2n)O(Nlog_2^n)O(Nlog2n) 空间复杂度:O(N)O(N)O(N) 稳定性:稳定递归实现:public class 递归实现原创 2022-05-18 21:34:41 · 227 阅读 · 0 评论 -
交换排序-Java版
交换排序所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。1:冒泡排序它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。交换排序-冒泡排序:不针对优化:时间复杂度:O(N2)O(N^2)O(N2)空间复杂度:O(N)O(N)O原创 2022-05-18 14:51:58 · 415 阅读 · 0 评论 -
选择排序-Java版
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。1:选择排序首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完原创 2022-05-18 13:46:58 · 70 阅读 · 0 评论 -
插入排序-Java版
插入排序插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动 。1:直接插入排序直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、原创 2022-05-18 13:12:54 · 96 阅读 · 0 评论 -
Java数据结构-堆相关
1:堆堆:堆是一棵完全二叉树大根堆:完全二叉树,根节点比左右孩子都大小根堆:完全二叉树,根节点比左右孩子都小下图是一个小根堆:层序的规则采用顺序的方式来高效存储,使用数组来存储层序遍历的结果已知孩子节点下标i,父亲节点下标为(i−1)/2(i-1)/2(i−1)/2已知父亲节点下标i,左孩子:2∗i+12*i+12∗i+1右孩子:2∗i+22*i+22∗i+22:大根堆/小根堆如何将一个完全二叉树调整为大根堆/小根堆? //堆的成员变量,一个数组,一个记录节点数量原创 2022-05-16 12:35:06 · 912 阅读 · 0 评论 -
Java数据结构-Tree相关
1:树树:是一种一对多的数据结构,采用链式存储,是n个结点的有限集,如果n=0则是一个空树,任意一个非空树只有一个根节点。其中,A为根(root),A,B,D…称为结点:节点包含了值和一些信息,有两种表示方法,其中孩子表示法用的较多树的遍历:以上图为例前序遍历:根节点->左子树->右子树 A B D C E F中序遍历:左子树->根节点->右子树 D B A E C F后序遍历:左子树->右子树-原创 2022-05-15 19:05:48 · 1162 阅读 · 0 评论 -
Java数据结构-List相关
1:ArrayList底层数据结构:ArrayList的底层为数组使用注意点: ArrayList插入数据要确保前一个位置有数据。ArrayList的遍历方式有三种:for循环,forEach,迭代器 ArrayList<Object> arrayList=new ArrayList<>(); arrayList.add(1); arrayList.add(2); arrayList.add(3); array原创 2022-05-14 23:02:36 · 671 阅读 · 0 评论