- 博客(7)
- 收藏
- 关注
原创 Java学习--Object类
Object类 1.registerNatives registerNatives方法在静态代码块中使用,作用是将本类中除getClass方法以外的其他native修饰的本地方法注册到JVM中,Object类中的本地方法有:clone(),hashCode(),notify(),notifyAll(),wait()。 // 注册本类中所有的本地方法 private static native void registerNatives(); static { registerNatives(
2020-12-06 20:15:37
192
原创 数据结构学习--希尔排序
希尔排序 算法描述:希尔排序是插入排序的一种改进,主要是为了解决当较小的数据大都出现在数组后面时导致的移动次数明显增多的问题,思想是使用一个不断缩小的增量gap将数组元素分组,在每个分组内部先进行插入排序,当gap减少到1时整个数组元素分在一组,最后进行一次插入排序,整个排序过程结束。 算法时间复杂度:最好情况:当数据已经排好序的情况下:O(N^1.3);最坏情况:O(N^2);平均情况:O(NlogN) 算法空间复杂度:O(1) 算法...
2020-11-20 00:00:21
8428
5
原创 数据结构学习--插入排序
插入排序 算法描述:插入排序的思想是假设待排序元素前面的元素已经是排好序的状态,然后从右至左找到该元素插入的位置,在寻找插入点的过程中将该元素前面的元素逐个平移到后一个位置,避免了交换。 算法时间复杂度:最好情况:当数据以及排好序的情况下:O(N);最坏情况:O(N^2);平均情况:O(N^2) 算法空间复杂度:O(1) 算法稳定性:算法不存在前面元素与后面元素的交换,采用逐个平移的方式,因此该算法是稳定的。 算法实现...
2020-11-15 21:06:39
223
原创 数据结构学习--选择排序
选择排序 算法描述:选择排序的思想是初始化最小索引为0,每趟遍历选出最小的元素与最小索引的值进行交换,然后是最小索引加1,第二趟遍历出剩下元素中最小的元素,继续与当前索引的元素交换,依次类推,直到所有元素排列完成。相比于冒泡排序,选择排序的优点在于每次遍历只需要交换1次。 算法时间复杂度:最好情况:O(N^2);最坏情况:O(N^2);平均情况:O(N^2) 算法空间复杂度:O(1) 算法稳定性:由于选择排序会直接将前面的元素与后面较小...
2020-11-15 18:00:01
175
原创 数据结构学习--冒泡排序
冒泡排序 算法描述:冒泡排序的思想是在每趟交换的过程,比较相邻的两个元素,将值大的放在右边,即将当前比较过程中的最大值移动到右边,然后将比较过程的最大索引减1,继续第二趟排序,将剩余元素中的最大值移动到右边,依次类推,直到发现有一趟比较过程中没有发生交换,则说明数组已经排好序了。 算法时间复杂度:最好情况:当数组已经是排好序的情况下,时间复杂度O(N);最坏情况:O(N^2);平均情况:O(N^2) 算法稳定性:由于冒泡排序可以保证数组左边的值必须大于右...
2020-11-15 16:24:13
194
原创 数据结构学习--稀疏数组
稀疏数组 当二维数组中的有效数据较小时,为了减少保存该数组所占用的内存空间,通常将原始数组转换为稀疏数组进行存储,一般流程为:二维数组->稀疏数组->序列化到硬盘->反序列化到内存->读取稀疏数组->读取二维数组。 二维数组转稀疏数组的过程: 1.遍历原始二维数组,得到有效数据的个数sum; 2.根据sum创建稀疏数组sparseArr,该稀疏数组有sum+1行,3列,其中第一行记录原始数组的大小和有效值个数,从第二行开始每列记录该数...
2020-11-14 20:55:20
166
原创 JDK源码阅读环境搭建详细步骤
JDK源码阅读环境搭建详细步骤 1.在Oracle官网下载JDK安装包,推荐JDK8或JDK11,这两个版本是LTS(长期支持)的版本,下载完成后安装,安装完成后再jdk目录中有一个src.zip的源码包。官网地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html。 2.在IDEA中新建一个工程jdk_source,在该级目录下新建一个目录jdksrc,将源码包src.zip移动到该目录下,并解压,解压完成后
2020-11-09 20:25:33
517
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅