归并排序Merging Sort,将两个或两个以上的有序表组合成一个新表。1.基本思想假设初始化系列含有n个记录,则可以看出n个有序的子序列,每一个子序列的长为1,然后两两归并,得到【n/2】个长度为1或2的子序列,再两两归并……如此重复,知道最后得到一个长度为n的有序序列位置,这种排序方法称为2-...
分类:
其他好文 时间:
2014-08-01 15:43:41
阅读次数:
208
算法思想灰常重要,常见的用到分治思想的算法包括快速排序,归并,二分搜搜,大整数乘法等(参考 http://blog.csdn.net/com_stu_zhang/article/details/7233761,归纳很到位)简单用归并对一个数组排序 思路: 简单来说对一个数组,只要他的左右两部分都是有...
分类:
其他好文 时间:
2014-07-31 23:35:50
阅读次数:
381
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排...
分类:
其他好文 时间:
2014-07-31 20:44:17
阅读次数:
287
TimSort算法是一种起源于归并排序和插入排序的混合排序算法,设计初衷是为了在真实世界中的各种数据中可以有较好的性能。该算法最初是由Tim Peters于2002年在Python语言中提出的。 TimSort 是一个归并排序做了大量优化的版本。对归并排序排在已经反向排好序的输入时表现O(n2)的特点做了特别优化。对已经正向排好序的输入减少回溯。对两种情况混合(一会升序,一会降序)的输入处理比较...
分类:
编程语言 时间:
2014-07-30 14:49:53
阅读次数:
805
归并排序的链表法#includeusing namespace std;struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution{public:...
分类:
其他好文 时间:
2014-07-30 07:40:23
阅读次数:
174
给定一个n的序列,有m个询问 每次询问求l-r 里面第k大的数字是什么只有询问,没有修改可以用归并树和划分树(我都没学过。。囧)我是专门冲着弄主席树来的对主席树的建树方式有点了解了,不过这题为什么是在主席树里面这么操作的 还是有点不懂,今天照着模板敲了一遍就打多校了再研究吧#include #inc...
分类:
其他好文 时间:
2014-07-30 00:42:32
阅读次数:
290
题目地址:POJ 2299
今天下午的多校看来没有白做。。。实在做不出题闲着无聊看小白鼠学会了个归并排序。哈哈。
归并排序简单地说其实就是先分成一个二叉树直至单个,然后依次从最底层不断进行合并,逆序对数就是在合并的过程中,加入后面的那段中到了比他大的时候,那后面的那些就都是比他大的,都是逆序对数,所以直接加上即可。网上资料很多,就不细说了。。用了分治的思想。
自己根据理解写的代码,考虑的太不...
分类:
其他好文 时间:
2014-07-29 22:01:21
阅读次数:
289
Mergeksorted linked lists and return it as one sorted list. Analyze and describe its complexity.题意:对k个有序的链表进行归并排序。并分析其复杂度。/** * Definition for singly-...
分类:
其他好文 时间:
2014-07-29 11:02:16
阅读次数:
205
归并排序(merge sort)是一个时间复杂度为O(nlogn)的基于比较的排序算法(comparison based sorting algorithm)。 归并排序大多数实现(implementation)都将其实现成了一个stable sort, 所谓的stable sort的意思就是the implementation preserves the input order of equal...
分类:
编程语言 时间:
2014-07-28 15:55:43
阅读次数:
392