1. 归并排序 归并排序,是创建在归并操作上的一种有效的排序算法,效率为O(nlogn)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子 ...
分类:
编程语言 时间:
2019-10-31 18:32:53
阅读次数:
87
本篇博客是为了熟悉冒泡选择插入希尔归并快速基数排序这几种排序算法而写的,基本上是看了书上代码,然后自己手敲理解一遍。 ...
分类:
编程语言 时间:
2019-10-30 00:08:44
阅读次数:
103
链表排序之归并排序: 排序前:6 2 8 4 9 5 1 3 7 排序后:1 2 3 4 5 6 7 8 9 ...
分类:
编程语言 时间:
2019-10-28 21:16:56
阅读次数:
96
第$K$优解这类问题可在$DP$过程中通过添维解决。归并出当前前$K$大的解。 ...
分类:
其他好文 时间:
2019-10-27 18:56:37
阅读次数:
62
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