自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 二叉树--堆

堆是一个完全二叉树; 堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。 每个节点的值都大于等于子树中每个节点值的堆,我们叫做“大顶堆”。对于每个节点的值都小于等于子树中每个节点值的堆,我们叫做“小顶堆”。完全二叉树比较适合用数组来存储。用数组来存储完全二叉树是非常节省存储空间的。单纯地通过数组的下标,就可以找到一个节点的左右子节点和父节点。数组中下标为i的节点的左子节点,就是下标为i*2的节点,右子节点就是下标为i∗2+1的节点,父节点就是下标为i/2的节点..

2022-04-12 11:44:18 1887

原创 二叉树--红黑树

平衡二叉查找树树中任意一个节点的左右子树的高度相差不能大于1平衡二叉查找树是AVL树,它严格符合我刚讲到的平衡二叉查找树的定义,即任何节点的左右子树高度相差不超过1,是一种高度平衡的二叉查找树。红黑树(不严格的平衡二叉查找树)一棵红黑树还需要满足这样几个要求: 根节点是黑色的; 每个叶子节点都是黑色的空节点(NIL),也就是说,叶子节点不存储数据; 任何相邻的节点都不能同时为红色,也就是说,红色节点是被黑色节点隔开的; 每个节点,从该节点到达其可达叶子节点

2022-04-11 12:14:56 350

原创 二叉树--二叉搜索树

编号2的二叉树中,叶子节点全都在最底层,除了叶子节点之外,每个节点都有左右两个子节点,这种二叉树就叫做满二叉树。叶子节点都在最底下两层,最后一层的叶子节点都靠左排列,并且除了最后一层,其他层的节点个数都要达到最大,这种二叉树叫做完全二叉树。如何表示(或者存储)一棵二叉树?链式存储法:一种是基于指针或者引用的二叉链式存储法基于数组的顺序存储法:一种是基于数组的顺序存储法把根节点存储在下标i = 1的位置,那左子节点存储在下标2 * i = 2的位置,右子节点存储在2 * i + 1..

2022-04-11 12:01:59 628

原创 二分查找与应用

二分查找的递归与非递归实现最简单的情况就是有序数组中不存在重复元素:public int bsearch(int[] a, int n, int value) { int low = 0; int high = n - 1; while (low <= high) { int mid = (low + high) / 2;//int mid = low + ((high - low) >> 1); if (a[mid] == value) {

2022-04-08 17:44:59 289

原创 常用的排序算法以及实现

如何分析一个“排序算法”?排序算法的执行效率1.最好情况、最坏情况、平均情况时间复杂度2.时间复杂度的系数、常数 、低阶3.比较次数和交换(或移动)次数排序算法的内存消耗算法的内存消耗可以通过空间复杂度来衡量,排序算法也不例外。原地排序算法,就是特指空间复杂度是O(1)的排序算法排序算法的稳定性经过某种排序算法排序之后,如果两个相等的数前后顺序没有改变,那我们就把这种排序算法叫作稳定的排序算法;如果前后顺序发生变化,那对应的排序...

2022-04-08 17:25:40 800

原创 垃圾回收与多线程关键知识点

最大的挑战是什么,成就感的事情,项目是干嘛的,用了哪些三方件,怎么实现的。 JVM的垃圾回收算法有哪些。怎么判断哪些对象是否需要回收。GC root一般如何选择。JDK1.8的垃圾回收器有哪些,使用的什么垃圾回收器。对于老年代中有新生代的引用,如何回收这部分,是否需要对老年代进行全面扫面。垃圾收集器:G1垃圾收集器 + CMS垃圾收集器可达性分析算法:GC Roots的根对象作为起始节点集,引用关系向下搜索如果某个对象到GC Roots间没有任何引用链相连,则从GC Roots到这个对象不可达时

2022-04-07 17:46:51 390

原创 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。

如何实现随机访问?第一是线性表(Linear List)第二个是连续的内存空间和相同类型的数据优势:“随机访问”。劣势:要想在数组中删除、插入一个数据,为了保证连续性,就需要做大量的数据搬移工作。容器(ArrayList)能否完全替代数组?优势就是可以将很多数组操作的细节封装起来、支持动态扩容。因为扩容操作涉及内存申请和数据搬移,是比较耗时的,最好在创建ArrayList的时候事先指定数据大小。总结:1.Java ArrayList无法存储基本类型,比如int、lo.

2022-04-07 11:44:59 1041

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除