分治策略
来源:互联网 发布:gpa标准加权算法 编辑:程序博客网 时间:2024/06/05 07:24
最大子数组问题
FIND-MAX-CROSSING-SUBARRAY(A,low,mid,high)
//查找跨越中点的最大子数组
left-sum=-∞sum=0for i=mid downto low sum=sum+A[i] if sum>left-sum //依次向左求和,并与左边所求得最大值比较 left-sum=sum max-left=i //返回已求得最大数组的左下标right-sum=-∞sum=0for j=mid+1 to high sum=sum+A[j] if sum>right-sum right-sum=sum max-right=jreturn (max-left,max-right,left-sum+right-sum) 使用分治法求最大数组问题FIND—MAXIMUM-SUBARRAY(A,low,high)if high=low return(low,high,A[low]) //仅有一个元素的情况else mid=⌊(low+high)/2⌋ (left-low,left-high,left-sum)= FIND-MAXIMUM-SUBARRAY(A,low,mid) (right-low,right-high,right-sum)= FIND-MAXIMUM-SUBARRAY(A,mid+1,high) (cross-low,cross-high,cross-sum)= FIND-MAX-CROSSING-SUBARRAY(A,low,mid,high)- if left-sum>=right-sum and left-sum>=cross-sum return(left-low,left-high,left-sum) elseif right-sum>=left-sum and right-sum>=cross-sum return(right-low,right-high,right-sum) else return(cross-low,cross-high,cross-sum)
0 0
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- 分治策略
- Divide & Conquer 分治策略
- 递归与分治策略
- 分治策略----快速排序
- 递归与分治策略
- C# 事件和Unity3D
- 可变参数列表函数实现
- PAT 1030 最短路径
- OJ 28之判断是否是整数
- String 变量必须赋初值
- 分治策略
- to_char的详细用法
- Android Studio Gradle 缓存文件夹设置
- java访问接口
- Java的数据类型
- lua utf8 len sub
- java 线程池
- OJ 29之变位词
- PAT 1034. Head of a Gang (30)