自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaSE面试深度剖析 1

2. 对象造型(用父类型引用引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。但是 name是 String 类型的, 它只是一个引用, 指向一个真正的 String 对象,那么对它的拷贝有两种方式: 直接将原对象中的 name 的引用值拷贝给新对象的 name 字段, 或者是根据原 Person 对象中的 name 指向的字符串对象创建一个新的相同的字符串对象,将这个新字符串对象的引用赋给新拷贝的 Person 对象的 name 字段。可以把这种现象叫做引用的复制。

2023-11-12 12:23:38 39 1

原创 Java多态

在编译的时候,编译器使用Employee类中的mailCheck()方法验证该语句, 但是在运行的时候,Java虚拟机(JVM)调用的是Salary类中的mailCheck()方法。还可以引用和它类型相同的或者相兼容的对象。Java中所有的方法都能以这种方式表现,借此,重写的方法能在运行时调用,不管编译的时候源代码中引用变量是什么数据类型。因为e是Employee的引用,所以调用e的mailCheck()方法则有完全不同的结果。当子类对象调用重载的方法时,调用的是子类的方法,而不是父类中被重载的方法。

2023-10-03 17:58:35 47 3

原创 Java文档注释

throws 和 @exception标签一样. The @throws tag has the same meaning as the @exception tag.由于javadoc的实现不同,工作也可能不同,你需要检查你的Java开发系统的版本等细节,选择合适的Javadoc版本。之后,你可以包含一个或多个何种各样的@标签。每一个@标签必须在一个新行的开始或者在一行的开始紧跟星号(*).{@link} 插入一个到另一个主题的链接 {@link name text}

2023-10-03 17:57:09 118

原创 归并排序1

目录\n\n \n\n归并排序\n\n一、概念及其介绍\n\n二、适用说明\n\n三、过程图示\n\n四、Java 实例代码\n\nMergeSort.java 文件代码:\n\n \n\n归并排序\n一、概念及其介绍\n归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。\n }\n}

2023-09-16 17:59:21 42 1

原创 并查集快速查找

合并元素 p 和元素 q 所属的集合, 合并过程需要遍历一遍所有元素, 再将两个元素的所属集合编号合并,这个过程是 O(n) 复杂度。// 合并过程需要遍历一遍所有元素, 将两个元素的所属集合编号合并。// 初始化, 每一个id[i]指向自己, 没有合并的元素。// 我们的第一版Union-Find本质就是一个数组。// 查找过程, 查找元素p所对应的集合编号。// 查看元素p和元素q是否所属一个集合。// 合并元素p和元素q所属的集合。// O(n) 复杂度。// O(1)复杂度。

2023-09-14 21:46:31 39 2

原创 C加加数组

n\n如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。以下是上面所讨论的数组的的图形表示:\n\n\n\n访问数组元素\n数组元素可以通过数组名称加索引进行访问。当上面的代码被编译和执行时,它会产生下列结果:\n\nElement Value\n 0 100\n 1 101\n 2 102\n 3 103\n 4 104\n 5 105\n 6 106\n 7 107\n 8 108\n 9 109\nC++ 中数组详解\n在 C++ 中,数组是非常重要的,我们需要了解更多有关数组的细节。

2023-09-10 11:13:41 96

原创 二分搜索树2

/ 向以node为根的二分搜索树中, 插入节点(key, value), 使用递归算法。// 树中的节点为私有的类, 外界不需要了解二分搜索树节点的具体实现。// 树中的节点为私有的类, 外界不需要了解二分搜索树节点的具体实现。// 向二分搜索树中插入一个新的(key, value)数据对。// 树种的节点个数。// 构造函数, 默认构造一棵空二分搜索树。// 构造函数, 默认构造一棵空二分搜索树。// 返回插入新节点后的二分搜索树的根。// 返回二分搜索树的节点个数。// 返回二分搜索树的节点个数。

2023-09-06 21:32:10 24

原创 二分搜索树

/ 向以node为根的二分搜索树中, 插入节点(key, value), 使用递归算法。// 树中的节点为私有的类, 外界不需要了解二分搜索树节点的具体实现。// 树中的节点为私有的类, 外界不需要了解二分搜索树节点的具体实现。// 向二分搜索树中插入一个新的(key, value)数据对。// 树种的节点个数。// 构造函数, 默认构造一棵空二分搜索树。// 构造函数, 默认构造一棵空二分搜索树。// 返回插入新节点后的二分搜索树的根。// 返回二分搜索树的节点个数。// 返回二分搜索树的节点个数。

2023-09-05 21:50:32 18

原创 二分搜索树

二分查找法的思想在 1946 年提出,查找问题是计算机中非常重要的基础问题,对于有序数列,才能使用二分查找法。平均时间的时间复杂度为 O(log n),最差情况为 O(n)。下面先介绍数组形式的二分查找法作为思想的借鉴,后面继续介绍二分搜索树的查找方式。二分搜索树 O(logn) O(logn) O(logn)若它的右子树不为空,右子树上所有的节点的值都大于它的根节点。若它的左子树不为空,左子树上所有节点的值都小于它的根节点。普通数组 O(n) O(n) O(n)

2023-09-03 20:53:59 23

原创 堆的shift up

这时比较 52 和 62 的大小,52 已经比父节点小了,不需要再上升了,满足最大堆的定义。假设我们对下面的最大堆新加入一个元素52,放在数组的最后一位,52大于父节点16,此时不满足堆的定义,需要进行调整。// 堆中元素取值范围[0, M)// 构造函数, 构造一个空堆, 可容纳capacity个元素。int N = 50;// 像最大堆中插入一个新的元素 item。// 返回一个布尔值, 表示堆中是否为空。// 交换堆中索引为i和j的两个元素。//* 最大堆核心辅助函数。// 返回堆中的元素个数。

2023-09-02 21:36:27 49 1

原创 随机化快速排序

如果是对近乎有序的数组进行快速排序,每次 partition 分区后子数组大小极不平衡,容易退化成 O(n^2) 的时间复杂度算法。在一个数组中选择一个基点,比如第一个位置的 4,然后把4挪到正确位置,使得之前的子数组中数据小于 4,之后的子数组中数据大于 4,然后逐渐递归下去完成整个排序。// 返回p, 使得arr[l...p-1] < arr[p];// 随机在arr[l...r]的范围中, 选择一个数值作为标定点pivot。// 递归使用快速排序,对arr[l...r]的范围进行排序。

2023-08-30 08:53:05 62

空空如也

空空如也

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

TA关注的人

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