ECMAScript 5 还新增了两个归并数组的方法:reduce()和reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce()方法从数组的第一项开始,逐个遍历到最后。而reduceRight()则从数组的最后一项开始,向前遍历到第一项。这两个方法...
分类:
其他好文 时间:
2014-09-09 15:13:18
阅读次数:
124
题目:UVA11997K Smallest Sums(优先队列+二路归并)
题目大意:求K个最小和。给出K行,每行有K个数,在每行中取一个元素相加,求这些和中最小的k的值。
解题思路:每一行排列一下,那么对于两张表a1
b1 ...
分类:
其他好文 时间:
2014-09-09 12:45:58
阅读次数:
209
自己写的#includevoid Merger(int num[],int start,int end){ int k,i,j,mid=(start+end)/2; int leftlen=mid-start+1,rightlen=end-mid; int totallen=end-start+1;...
分类:
其他好文 时间:
2014-09-09 11:59:58
阅读次数:
132
T4: 求逆序对A[I]为前缀和推导 (A[J]-A[I])/(J-I)>=MA[j]-A[I]>=M(J-I)A[J]-M*J>=A[I]-M*I设B[]=A[]-M*();B[J]>=B[I]也就是求逆序对;求逆序对的方法主要有两种: 归并排序; 树状数组;这里两种方法都学习一下:1.之前对于树...
分类:
其他好文 时间:
2014-09-09 11:56:48
阅读次数:
262
归并排序算法稳定,数组需要O(n)的额外空间,链表需要O(log(n))的额外空间,时间复杂度为O(nlog(n))NOTE:新数组的创建和数据拷贝是硬伤,我尝试了一下只申请一个workspace,应该还不错吧,没有理论论证代码: 1 package sorts; 2 3 import java.....
分类:
其他好文 时间:
2014-09-09 10:53:28
阅读次数:
262
多线程是非常适合归并排序的,因为归并排序是分治法,所以分割后可以独立运行,最后将结果归并起来就行了。如何写一个多线程程序呢?今天无聊,总结一下啊。首先写个普通的归并排序,以后的多线程就调用这个排序。1.这段代码很简单,就是一个基本的归并排序,知道这个类中的sort实现归并排序就OK.package ...
分类:
编程语言 时间:
2014-09-09 10:48:08
阅读次数:
360
import java.util.Scanner;public class Main { private static int count=0; public static void mergesort(int a[],int low,int high) { if(l...
分类:
编程语言 时间:
2014-09-09 10:39:58
阅读次数:
241
基本思想 设归并排序的当前区间是R[low..high],分治法的三个步骤是: ①分解:将当前区间一分为二,即求分裂点 ②求解:递归地对两个子区间R[low..mid]和R[mid+1..high]进行归并排序; ③组合:将已排序的两个子区间R[low..mid]和R[mid+1..high]归并为一个有序的区间R[low..high]。...
分类:
其他好文 时间:
2014-09-07 19:50:35
阅读次数:
244
1 /* 2 * 归并排序递归实现 3 * 简介:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。 4 * 然后再把有序子序列合并为整体有序序列 5 * 时间复杂度为O(nlogn) 6 * 7 * */ 8 9 import...
分类:
其他好文 时间:
2014-09-07 14:48:05
阅读次数:
239