设A[1..n]是一个包含n个不同整数的数组。如果在iA[j],则(i,j)就称为A中的一个逆序对(inversion)。
给出一个算法,确定n个元素的任何排列中逆序对的书目。时间复杂度为o(nlgn)。
分治法求解思路:
分解:将数组A[1..n]分为两个子序列A[1..p]和A[p+1,n],二分法将其分解。。
解决:根据归并排序的思想,在合并过程中,计算逆序对。假如两...
                            
                            
                                分类:
其他好文   时间:
2015-03-27 22:19:52   
                                阅读次数:
200
                             
                         
                    
                        
                            
                            
                                求一个序列的子序列的最大值,这是一个经典算法,这里稍作整理。
问题:任给一个整数序列,如{-2, 5, 7, 11, -4, 13, -5, -2, -6, 3, -1, 3},求出这个序列中连续子序列的和的最大值,这个例子中最大值为32,子序列为{5, 7, 11, -4, 13}。
方法一:最简单的暴力法。确立一个起点,一个终点,计算起点到终点的和。下面代码中int brute_force...
                            
                            
                                分类:
其他好文   时间:
2015-03-21 17:15:02   
                                阅读次数:
179
                             
                         
                    
                        
                            
                            
                                快速排序是目前平均性能最好的排序算法(从通用层面上考虑),其平均时间复杂度为O(nlogn).快速排序的思想很简单,首先将待排序的序列以某个元素为轴划分为两组,轴的左边元素不大于轴,右边的元素不小于轴,接下来分别对轴左边的元素(左子序列)和右边的元素(右子序列)进行同样的划分(每个子序列均不包含作为轴的元素,因为此时它已经处在了正确的位置上),这个过程不断重复下去,知道子序列元素个数为1时,那么排序...
                            
                            
                                分类:
编程语言   时间:
2015-03-21 14:10:04   
                                阅读次数:
203
                             
                         
                    
                        
                            
                            
                                链接:http://www.cnblogs.com/CCBB/archive/2009/04/25/1443455.html最大子序列和问题问题描述:输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:序列:-2 11 -413 -5 -2,则最大...
                            
                            
                                分类:
其他好文   时间:
2015-03-20 20:25:59   
                                阅读次数:
206
                             
                         
                    
                        
                            
                            
                                最长单调子序列(O(n^2)   和   O(nlg(n))))...
                            
                            
                                分类:
其他好文   时间:
2015-03-16 14:39:54   
                                阅读次数:
177
                             
                         
                    
                        
                            
                            
                                输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:
序列:-2 11 -4 13 -5 -2,则最大子序列和为20。
序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16
#include
int main()
{
    void res(int num[],int n);
    in...
                            
                            
                                分类:
其他好文   时间:
2015-03-13 20:50:27   
                                阅读次数:
138
                             
                         
                    
                        
                            
                            
                                题目描述:求一个序列中连续子序列和的最大值(如果全为负,则输出0)分析思路:简单的DP题1.分析:最开始想到的是分治,分治的复杂度是O[n*lb(n)][姑且把lb当做以2为底的对数],由于分治的时候遇到连接处的处理问题,一不小心就想到了原来这是DP题。2.状态转移方程:(1)sum[i]=max{...
                            
                            
                                分类:
其他好文   时间:
2015-03-11 21:32:59   
                                阅读次数:
153
                             
                         
                    
                        
                            
                            
                                和之前的一题很像,直接套用。
#include   
using namespace std;  
  
int main()  
{  
    int a[10001];  
    int n,i;  
    int sum,maxsum,start,maxstart,maxend;
    while(cin>>n && n)  
    {  
        for(i=0;i<...
                            
                            
                                分类:
其他好文   时间:
2015-03-11 19:42:16   
                                阅读次数:
147
                             
                         
                    
                        
                            
                            
                                解决最大连续子序列和的两种方法:分治,动态规划。
分治时间复杂度虽然更高,但我还是写了一遍加深对这种思想的理解:将一个问题分治成若干个小的同样思路的子问题来解决。本题将所求序列等分成左右两个子序列,愿序列的最大子序列和必是左序列最大子序列和,有序列最大子序列和,跨左右子序列最大和三者中的最大者。
动态规划:用dp[i]更新dp[i+1]就行。
分治:
//
//  main.cpp
// ...
                            
                            
                                分类:
其他好文   时间:
2015-03-09 14:33:35   
                                阅读次数:
216
                             
                         
                    
                        
                            
                            
                                URAL 1296. Hyperjump(最大子序列和)...
                            
                            
                                分类:
其他好文   时间:
2015-03-07 11:35:23   
                                阅读次数:
120