- 博客(45)
- 收藏
- 关注
原创 排序(四、归并排序与计数排序)
计数排序是非比较排序,时间复杂度是O(n+k),空间复杂度是O(k),是稳定算法。(n表示的是数组的个数,k表示的max-min+1的大小)时间复杂度是O(n+k):通过上面的代码可知最终的计数算法花费的时间是3n+k,则时间复杂度是O(n+k)。空间复杂度是O(k):如果出去最后的返回数组,则空间复杂度是2k,则空间复杂度是O(k)
2024-05-23 17:19:16
663
2
原创 排序(三、快速排序)
1. 快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序2. 时间复杂度最好:O(N*logN)最坏:O(N*N)3. 空间复杂度:O(logN)4. 稳定性:不稳定。
2024-05-23 13:33:04
766
原创 排序(二、插入排序、希尔排序与选择排序)
1. 元素集合越接近有序,直接插入排序算法的时间效率越高2.时间复杂度:最坏情况下为O(N*N),此时待排序列为逆序,或者说接近逆序最好情况下为O(N),此时待排序列为升序,或者说接近升序。3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。
2024-05-23 11:44:13
648
1
原创 排序(一、概念运用及其算法)
排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变。即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。
2024-05-23 11:03:14
248
1
原创 二叉树---堆排序以及时空复杂度详解
向下调整建堆,节点越多调整次数越少,节点越少调整次数越多。向上调整建堆,节点越多调整次数越多,节点越少调整次数越少。
2024-05-16 10:22:21
553
原创 二叉树---堆的概念以及实现
堆其实就是满足一定条件的树:在堆中,他的每个结点的值都大于等于(或者小于等于)子树中的所有结点的值。也可以通俗的说任意一个结点的值都大于等于(或者小于等于)所有所有子节点的值。其中堆不一定是完全二叉树,只是为了方便存储和索引,我们通常用完全二叉树的形式来表示堆而已。
2024-05-16 09:36:33
308
原创 Java基础--类和对象(总篇)
Java基础--类和对象(超详细!!!)1. 面向对象的初步认知2. 类定义和使用3. 类的实例化4 . this引用5. 对象的构造及初始化6. 封装7. static成员8. 代码块9. 内部类10. 对象的打印
2024-04-13 20:11:07
1625
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人