https://www.acwing.com/problem/content/789/ ...
分类:
编程语言 时间:
2019-10-27 01:05:44
阅读次数:
71
"链接" 对于每个状态$f[j]$多记录一个维度,转移的时候利用类似于归并排序的方法合并,以保证时间复杂度可以承受 注意事项:前$K$大可以有重复的价值,法规的卫生费破口还给你 cpp include include include using namespace std; const int MA ...
分类:
其他好文 时间:
2019-10-26 19:27:32
阅读次数:
93
list就是链表的实现,链表是什么,我就不再解释了。list的好处就是每次插入或删除一个元素,都是常数的时空复杂度。但遍历或访问就需要O(n)的时间。 List本身其实不难理解,难点在于某些功能函数的实现上,例如我们会在最后讨论的迁移函数splice()、反转函数reverse()、排序函数sort ...
分类:
其他好文 时间:
2019-10-26 17:35:16
阅读次数:
103
//希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本.但希尔排序是非稳定排序算法. 希尔排序是基于插入排序的以下两点性质而提出改进方法的 : 1. 插入排序在对几乎已经排好序的数据操作时,效率高,既可以达到线性排序的效率 2. 但插入排序一般来说是低效的,因为插入排序每次只能将数据移... ...
分类:
编程语言 时间:
2019-10-26 13:38:52
阅读次数:
83
原题(Medium): 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 思路:自底向上(bottom-to-up)、归并排序(Merge Sort) 题目对时间复杂度和空间复杂度做出了要求,常用的对数级别的排序方法不多,由于这里并不是双向链表,所以快排不太可能,可以使用归 ...
分类:
编程语言 时间:
2019-10-26 13:25:17
阅读次数:
99
常见排序算法 本文介绍了Go语言版经典的排序算法–快速排序、归并排序和堆排序。 排序算法 快速排序 go func quickSort(data []int) { if len(data) base { data[i], data[r] = data[r], data[i] r } else { d ...
分类:
编程语言 时间:
2019-10-26 13:16:46
阅读次数:
87
1.题目描述: 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 2.解题思路及代码: 看到O(n log n)时间复杂度,第一时间想到用归并排序或者快排,但是链表交换节点太麻烦,遂选择归并排序 用归并排序排序数组难点在于如何快速找到链表中点,便于后续递归调用。后来看了题解 ...
分类:
编程语言 时间:
2019-10-25 23:09:11
阅读次数:
109
MapReduce的shuffle过程介绍 Shuffle的语义是洗牌、混洗,即把一组有一定规则的数据尽量转换成一组无规则的数据,随机性越高越好。 MapReduce中的Shuffle更像是洗牌的逆过程,把一组无规则的数据尽量转换成一组具有一定规则的数据。 为什么MapReduce计算模型需要Shu ...
分类:
其他好文 时间:
2019-10-24 15:46:21
阅读次数:
94
http://poj.org/problem?id=2299 求逆序对最简单的绝对不会是树状数组,一定是归并排序(认真),不过树状数组会不会快一点呢?理论上应该是树状数组快一点(假如不进行离散化)。 cpp include include include include include includ ...
分类:
编程语言 时间:
2019-10-24 00:22:56
阅读次数:
114
归并排序 vector实现 c++ include include using std::cout; using std::endl; using std::vector; void Merge(vector &v, int L, int M, int R) { //拆分成两个vector:left ...
分类:
其他好文 时间:
2019-10-23 22:30:06
阅读次数:
111