今天我看到ooo聚聚画线段树,但是ta画的不是很好,于是本人饶有兴趣的研究了那棵无聊的树。 但是它并不满足树的性质,于是命名为伪树。 为了防止太弱和别的巨型数据结构撞名导致尴尬,于是又挂了自己$id$的一部分,叫"蒙伪树"($\text{Miemeng's Erroneous Tree}$)可以简称 ...
分类:
其他好文 时间:
2019-11-01 22:19:02
阅读次数:
80
先讨论出现次数大于n/2的数字,如果这样的数字存在,那么这个数出现的次数大于其他数出现的次数的总和。 在数组A中,我们定义两个数据集合a1,a2。a1为出现次数大于n/2的数的集合,a2为其余数组成的集合。对于数组 A中元素a、b,假设a不等于b,那么有两种情况,分别为:a属于a1,b属于a2;a属 ...
分类:
编程语言 时间:
2019-10-31 21:30:58
阅读次数:
136
稳定 冒泡排序 冒泡排序是不断比较相邻两个元素,并不断交换,最后把大的放到数组后面。第一趟遍历会把最大的元素放到(n-1)位置,第二趟遍历会把第二大的元素放到(n-2)的位置,以此类推。 最好的情况是当数组有序,跑一次内存循环(时间复杂度为O(N))后,因为isSorted为true,外层循环直接退 ...
分类:
编程语言 时间:
2019-10-29 23:43:23
阅读次数:
95
题目描述 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。因为街道是一条单行道,所以任何车辆都不能超车。桥能承受一个给定的最大承载量。为了控制桥上的交通,桥两边各站一个指挥员。护卫车队被分成几个组,每组中的车辆都能同时通过该桥。当一组车队达到了桥的另一端,该端的指挥员就用电话通知另一端的 ...
分类:
其他好文 时间:
2019-10-28 01:19:27
阅读次数:
118
小白的我总是搞不清楚 因此做个整理(来源http://data.biancheng.net/view/2.html) 算法是解决某个问题的想法、思路;而程序是在心中有算法的前提下编写出来的可以运行的代码。 算法的运行时间。(称为“时间复杂度”) 运行算法所需的内存空间大小。(称为“空间复杂度”) 时 ...
分类:
其他好文 时间:
2019-10-26 15:37:04
阅读次数:
76
原题(Medium): 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 思路:自底向上(bottom-to-up)、归并排序(Merge Sort) 题目对时间复杂度和空间复杂度做出了要求,常用的对数级别的排序方法不多,由于这里并不是双向链表,所以快排不太可能,可以使用归 ...
分类:
编程语言 时间:
2019-10-26 13:25:17
阅读次数:
99
各种排序的稳定性,时间复杂度、空间复杂度、稳定性总结如下图: ...
分类:
编程语言 时间:
2019-10-26 13:22:58
阅读次数:
69
1.题目描述: 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 2.解题思路及代码: 看到O(n log n)时间复杂度,第一时间想到用归并排序或者快排,但是链表交换节点太麻烦,遂选择归并排序 用归并排序排序数组难点在于如何快速找到链表中点,便于后续递归调用。后来看了题解 ...
分类:
编程语言 时间:
2019-10-25 23:09:11
阅读次数:
109
前言 改题最快的一次考试…… 好久没看到过这么友好的题了,出题人++rp。 T1 小Q的分数只和最高位的1有关。 直接找就行了,找到就是小Q赢,没找到就是平局。 代码巨短。 时间复杂度$\Theta(N)$,空间复杂度$\Theta(1)$。 #include<cstdio> int main(){ ...
分类:
其他好文 时间:
2019-10-25 10:00:22
阅读次数:
79
描述算法复杂度时,常用o(1), o(n), o(logn), o(nlogn)表示对应算法的时间复杂度,是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。 比如时间复杂度 ...
分类:
编程语言 时间:
2019-10-24 21:32:36
阅读次数:
95