题目链接:http://poj.org/problem?id=1804题意:给定一个序列a[],每次只允许交换相邻两个数,最少要交换多少次才能把它变成非递降序列.思路:题目就是要求逆序对数,我们知道,求逆序对最典型的方法就是树状数组,但是还有一种方法就是Merge_sort(),即归并排序。实际上归...
分类:
其他好文 时间:
2015-09-10 21:15:01
阅读次数:
261
原文:http://blog.csdn.net/alongela/article/details/8142965给定n个数,要求这些数构成的逆序对的个数。除了用归并排序来求逆序对个数,还可以使用树状数组来求解。树状数组求解的思路:开一个能大小为这些数的最大值的树状数组,并全部置0。从头到尾读入这些数...
分类:
编程语言 时间:
2015-09-05 12:23:33
阅读次数:
147
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。思路:采用归并排序的思想,将数组中的元素分割成子数组,先统计出子数组里的逆序对的个数。同时将这些子数组的数字排成有序的慢慢往多的合并,在合并的过程中一面统计逆序对的个数,...
分类:
编程语言 时间:
2015-09-01 16:43:26
阅读次数:
174
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 1 class Solution { 2 public: 3 int InversePairs(vector data) { 4 int count=...
分类:
编程语言 时间:
2015-09-01 16:37:59
阅读次数:
144
希尔排序(by Donald Shell 1959年提出) 原理:一次改变2个逆序对。要克服简单排序每次只交换相邻元素希尔增量序列原始希尔排序原始希尔排序:void Shell_sort(ElementType A[], int N){ for(D=N/2;D>0;D/=2){ //希...
分类:
编程语言 时间:
2015-08-31 09:54:58
阅读次数:
209
题目:在数组中如果两个数字的前面的数比后面的数大,则称为一对逆序对。输入一个数组求出数组中逆序对的总数。以空间换时间:思路:借助一个辅助数组,将原来的数组复制到该数组中。然后将该数组分成子数组,然后统计子数组中内部的逆序,然后再统计两个相连的子数组中的逆序对,这个过程用到了归并排序。时间复杂度为O(...
分类:
编程语言 时间:
2015-08-27 15:07:10
阅读次数:
141
题意:给一个数组,计算需要的冒泡排序的次数,元素个数很大,不能用n^2的冒泡排序计算。解析:这题实际上就是求逆序对的个数,可以用归并排序的方法,我这里用另一种方法写,bit树+离散化。由于元素的值可以达到很大,但元素个数最多只有500000个,可以先对这些数排序,离散化一下,比如5个数:1 5 8 ...
分类:
编程语言 时间:
2015-08-26 21:57:03
阅读次数:
149
http://codeforces.com/problemset/problem/61/E
E. Enemy is weak
time limit per test
5 seconds
memory limit per test
256 megabytes
input
standard input
output
stan...
分类:
编程语言 时间:
2015-08-25 19:45:05
阅读次数:
600
题目
在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对,输入一个数组,求出这个数组中的逆序对的总数。
例如:{7,5,6,4},一共存在5个逆序对,分别是(7,6)(7,5)(7,4)(6,4)和(5,4)
思路
本来是毫无思路的,一般习惯了暴力破解,剑指offer后面的归并排序的思想,让我想到归并排序是好多年前写过的(忘了......果然出来混总是要还...
分类:
编程语言 时间:
2015-08-18 12:11:06
阅读次数:
344
HDU 1394题意:
给一个由0~n-1组成的序列,求出该序列的所有循环同构序列中的最小逆序对数目,逆序对的两个元素可以不相邻。
思路:这题据说可以直接暴力O(n2)O(n^2)可以水过。。
说一下线段树做法O(nlogn)O(n\log n):
以这个序列来说明:
1,9,2,3,0,8,5,7,4,61 ,9 ,2, 3, 0, 8, 5, 7 ,4 ,6我们先假设有一个长度为n元素...
分类:
其他好文 时间:
2015-08-18 06:35:18
阅读次数:
123