题意:求一个数列的冒泡排序的交换次数;参考:http://blog.csdn.net/suwei19870312/article/details/5293694思路: 一个数列的冒泡排序交换次数即为每个数对应的逆序对数之和,朴素的思想是两个for,O(N^2)复杂度; 数字范围是0-9999...
分类:
编程语言 时间:
2015-08-14 13:21:55
阅读次数:
123
树状数组,具体的说是 离散化+树状数组。这也是学习树状数组的第一题.
算法的大体流程就是:
1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的,
2.接着,运用树状数组的标准操作来累计数组的逆序数。
算法详细解释:
1.解释为什么要有离散的这么一个过程?
刚开始以为999.999.999这么一个数字,对于int存储类型来说是足够了。...
分类:
编程语言 时间:
2015-08-12 19:29:01
阅读次数:
136
题目链接:http://poj.org/problem?id=2299题意就是求把数组按从小到大的顺序排列,每次只能交换相邻的两个数, 求至少交换了几次就是求逆序数用归并排序#include#include#include#define N 501000using namespace std;int...
分类:
编程语言 时间:
2015-08-09 20:26:33
阅读次数:
126
原题:DescriptionIn this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swappi...
分类:
其他好文 时间:
2015-08-07 21:45:37
阅读次数:
142
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/A题意: 多组案例,先输入数据的数目,在依次输入数据,判断将这些数据从小到大排列最少需要多少操作步数。(案例以输入0结束)案例: Sample Input...
分类:
编程语言 时间:
2015-08-05 17:56:52
阅读次数:
182
原题poj 2299:http://poj.org/problem?id=2299题意,给你一个数组,去统计它们的逆序数,由于题目中说道数组最长可达五十万,那么O(n^2)的排序算法就不要再想了,接下来的选择是快排,归并,看你喜欢了这里列出归并的解法:#include"iostream"using ...
分类:
编程语言 时间:
2015-08-05 12:36:56
阅读次数:
149
利用归并排序统计逆序数,利用归并求逆序在对子序列s1和s2在归并时(s1,s2已经排好序),若s1[i]>s2[j](逆序状况),则逆序数加上s1.length-i,因为s1中i后面的数字对于s2[j]都是逆序的。 1 #include 2 #include 3 int N; 4 int num.....
分类:
编程语言 时间:
2015-08-05 12:30:09
阅读次数:
169
Ultra-QuickSortTime Limit:7000MSMemory Limit:65536KTotal Submissions:48257Accepted:17610DescriptionIn this problem, you have to analyze a particular s...
分类:
编程语言 时间:
2015-08-04 22:43:46
阅读次数:
176
归并排序求逆序数Time Limit:7000MSMemory Limit:65536KB64bit IO Format:%I64d & %I64uDescriptionIn this problem, you have to analyze a particular sorting algorit...
分类:
编程语言 时间:
2015-08-03 14:15:21
阅读次数:
122
Problem: 2299 User: shu_dayangMemory: 7380K Time: 500MSLanguage: C++ Result: AcceptedSource Code//树状数组#include#include#include#includetypedef long ...
分类:
编程语言 时间:
2015-07-23 00:32:44
阅读次数:
144