
数据结构
文章平均质量分 70
从初识到掌握
Joker10085
大二
展开
-
排序(四、归并排序与计数排序)
计数排序是非比较排序,时间复杂度是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 · 767 阅读 · 0 评论 -
排序(二、插入排序、希尔排序与选择排序)
1. 元素集合越接近有序,直接插入排序算法的时间效率越高2.时间复杂度:最坏情况下为O(N*N),此时待排序列为逆序,或者说接近逆序最好情况下为O(N),此时待排序列为升序,或者说接近升序。3. 空间复杂度:O(1),它是一种稳定的排序算法4. 稳定性:稳定1. 希尔排序是对直接插入排序的优化。2. 当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行性能测试的对比。原创 2024-05-23 11:44:13 · 653 阅读 · 1 评论 -
排序(一、概念运用及其算法)
排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变。即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。原创 2024-05-23 11:03:14 · 250 阅读 · 1 评论 -
二叉树---堆排序以及时空复杂度详解
向下调整建堆,节点越多调整次数越少,节点越少调整次数越多。向上调整建堆,节点越多调整次数越多,节点越少调整次数越少。原创 2024-05-16 10:22:21 · 568 阅读 · 0 评论 -
二叉树---堆的概念以及实现
堆其实就是满足一定条件的树:在堆中,他的每个结点的值都大于等于(或者小于等于)子树中的所有结点的值。也可以通俗的说任意一个结点的值都大于等于(或者小于等于)所有所有子节点的值。其中堆不一定是完全二叉树,只是为了方便存储和索引,我们通常用完全二叉树的形式来表示堆而已。原创 2024-05-16 09:36:33 · 310 阅读 · 0 评论