基本枚举、贪心、递归、分治、递推、模拟STL(pair、vector、set、map、queue、string、algorithm)构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/Tr...
分类:
其他好文 时间:
2014-10-05 11:03:18
阅读次数:
276
java实现package sort;public class MergeSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated ...
分类:
其他好文 时间:
2014-10-02 16:43:53
阅读次数:
246
线段树(interval tree) 是把区间逐次二分得到的一树状结构,它反映了包括归并排序在内的很多分治算法的问题求解方式。
上图是一棵典型的线段树,它对区间[1,10]进行分割,直到单个点。这棵树的特点
是:
1. 每一层都是区间[a, b]的一个划分,记 L = b - a
2. 一共有log2L层
3. 给定一个点p,从根到叶子p上的所有区间都包含点p,且其他区间都不包...
分类:
其他好文 时间:
2014-10-02 09:14:52
阅读次数:
196
求逆序数
时间限制:2000 ms | 内存限制:65535 KB
难度:5
描述
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。
现在,给你一个N个元素的序列,请你判断出它的逆序数是多少。
比如 1 3 2 的逆序数就是1。
输入第一行输入一个...
分类:
其他好文 时间:
2014-10-01 19:33:21
阅读次数:
151
hi,主要注意两点:1、如果只用一份传入的临时数组,在merge的最后,要把所有元素,copy回原数组;2、逆序数计算的时候low2-i,而不是low2-low1其实还可以做一点优化,就是在merge函数里,后半段如果没结束,可以不用copy到临时数组,然后从临时数组,copy回原数组的时候,可以..
分类:
其他好文 时间:
2014-09-30 04:56:32
阅读次数:
206
归并排序基本思想:将两个或两个以上的有序子序列“归并”为一个有序子序列。在内部排序中,通常采用的是2-路归并排序,即将两个位置相邻的有序子序列“归并”为一个有序序列。类似于快排,其使用的也是分治的策略。二路归并排序基本思想:将有n个记录的原始序列看做n个有序子..
分类:
其他好文 时间:
2014-09-30 04:38:12
阅读次数:
191
#includeusing namespace std;void Merge(int a[],int b[],int first,int mid,int last)//合并两个有序数组{ int p=first,q=mid+1; int pos=first; while(p<=mid&&q<=las...
分类:
其他好文 时间:
2014-09-29 23:36:11
阅读次数:
487
现在来写写数据结构,感觉还是有点陌生,应该多练练,有需要的朋友可以看看。
* 冒泡排序
* 插入排序
* 选择排序
* shell排序
* 堆排序
* 归并排序
* 二叉树排序
* 快速排序...
分类:
编程语言 时间:
2014-09-29 19:23:01
阅读次数:
310
排序算法算是比较基本的算法,同时也是最重要的算法,涉及到的知识也比较多,下面记录一下各种排序算法的实现,包括插入排序,选择排序,快速排序,归并排序,冒泡排序等常见的排序算法:...
分类:
其他好文 时间:
2014-09-29 15:37:51
阅读次数:
130