自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java中数组为null和数组长度为0的区别

在 Java 中,null 表示“没有值”或“空”。它是一个关键字,用于表示一个对象变量不引用任何对象。这意味着该变量没有指向任何有效的。地址,因此它不指向任何对象。如果尝试在 null 引用上调用任何方法或字段,则会引发 NullPointerException 异常。而数组的长度为0表示在堆区创建了一个内存空间,里面可以储存的元素个数为0。null可以转化为任意的引用数据类型。

2023-08-08 17:37:03 252

原创 快速排序,希尔排序,归并排序,基数排序的时间复杂度比较

希尔排序通过gap步长,不着眼于一个个细节,而着眼于全局,将全局向有序推进,从而相对于插值排序减少了移位次数,优化了时间,时间复杂度与gap有关,插值排序相当于gap=1的情况。快速排序最好的情况是选择的基数更将数组左右平分,这种情况下形成的递归树的高度为logn,每一层的规模为n,所以时间复杂度为O(nlogn)。基数排序处理一次的时间复杂度为O(n),处理的次数由最大数的位数决定,所以时间复杂度为O(n)。最坏的情况为基数总是最大或者最小,这种情况相当于冒泡排序,时间复杂度为O(n^2)

2023-08-08 10:59:14 411

原创 为什么冒泡排序比插值排序慢?为什么希尔排序用交换法比移位法慢?

可以看到,单纯的if置空语句耗时都比插值排序多,这是因为if语句里面有arr【j】的缘故,要从堆区中找到arr【j】的数值然后进行比较,虽然数组根据索引查找速度快,但是依然会消耗一定时间。而冒泡排序消耗的时间更多,因为其中的if语句里面进行数组索引查找的次数更多,插值查找耗时少因为if语句执行次数少并且其中执行数组根据索引查找的代码少。所以插值查找和冒泡查找时间复杂度相同,但是插值查找更快。而希尔排序里面使用交换法比移位法慢也是如此,因为交换法里面if语句次数多并且if语句内执行数组根据索引查找的代码多。

2023-08-08 10:36:35 121

空空如也

空空如也

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

TA关注的人

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