数据结构 最大子序列和
来源:互联网 发布:c语言char怎么赋值 编辑:程序博客网 时间:2024/05/17 22:50
最大子序列问题描述:
给定N个数(其中可能有负数),求解 最大的子序列和。
int maxsubsum1(const int A[] , int n){int thissum , max , k ;max = 0 ;for ( int i = 0 ; i < n;++i) for( int j = i ; j < n ;++j) { thissum = 0 ; for ( k = i ; k <= j ;++k) thissum += A[k]; if ( thissum > max ) max = thissum ; }return max;}
</pre><pre name="code" class="cpp">
穷举所有可能,复杂度N的三次方。
<pre name="code" class="cpp">int maxsubsum2(const int A[], int n){int thissum , max = 0 ; for ( int i = 0 ; i < n ;++i){ thissum = 0 ; for ( int j = i ; j < n ; ++j) { thissum += A[j] ; if ( thissum > max ) max = thissum ; } } return max ; }
算法复杂度 复杂度N的平方。
int maxsubsum3(const int A[], int n){ int thissum , maxsum ; thissum = maxsum = 0 ; int maxele = A[0];// 如果数组全为负数,maxele为最大值 for ( int i = 0 ; i < n ; ++i) { thissum += A[i]; if ( thissum > maxsum) maxsum = thissum; else if ( thissum < 0) thissum = 0 ; if (maxele < A[i]) maxele = A[i]; } return maxsum > maxele ? maxsum : maxele ;//比较最大和 和 最大值 ,}
</pre><pre name="code" class="cpp">
分治递归。。。。好厉害
<pre name="code" class="cpp">static int maxsub(const int A[] , int l , int r){int maxlsum , maxrsum;int maxlbsum , maxrbsum ;int lbsum , rbsum ;int center ;int max ;if( l == r) if (A[l] > 0) return A[l]; else return 0; center = (l+r)/2;maxlsum = maxsub(A,l,center);maxrsum = maxsub(A,center+1,r);maxlbsum=0; lbsum = 0;for ( int i = center ; i >= 0;--i){ lbsum += A[i]; if (lbsum > maxlbsum) maxlbsum = lbsum;}maxrbsum=0; rbsum = 0;for ( int i =center+1; i < r;++i){rbsum += A[i];if ( rbsum > maxrbsum) maxrbsum = rbsum;}max = maxlsum > maxrsum ? maxlsum : maxrsum;max = max > (maxlbsum + maxrbsum) ? max : (maxlbsum+maxrbsum);return max;}int maxsubsum4(const int A[] , int n){maxsub(A,0,n-1);}
0 0
- 数据结构 最大子序列和
- 数据结构一:最大子序列和问题
- [数据结构]连续子序列最大和,最大积的问题
- 【数据结构】最大子序列问题
- 最大子序列和
- 最大子序列和
- 最大和子序列
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和
- 最大子序列和?
- 最大子序列和
- 最大子序列和
- 和最大子序列
- 最大子序列和
- 最大子序列和
- 最大子序列和
- UML 类图介绍
- x264_encoder_open
- Failed to create the Java Virtual Machine
- Linux查看硬件信息以及驱动设备的命令
- 程序编码
- 数据结构 最大子序列和
- java中的数组(一)
- android配置adb
- rr公司的一道面试题
- 图片缓存之内存缓存技术LruCache
- 承诺,项目管理中的大杀器
- VS下创建网站发布到IIS
- RGB565 与 RGB888的相互转换
- C#中如何获取当前路径的几种方法