FIND-MAXIMUM-SUBARRAY(A,low,high) 非递归代价:常量 1 if high ==low 2 return (low,high,Allow /base case:only one element 3 else mid =[(low +high)/2] 4 (left-low,lefi-high,left-sum)= 递归,理想状况下 FIND-MAXIMUM-SUBARRAY(A,low,mid) 问题规模是原来的 5 (right-low,right-high,right-sum)= 一半。 FIND-MAXIMUM-SUBARRAY(A,mid +1.high) 非递归代价: 6 (cross-low,cross-high,cross-sum)= 线性 FIND-MAX-CROSSING-SUBARRAY(A,low,mid,high) 7 if left-sim≥right-sumn and left-sm≥cross-sm 8 return (lef-low,lef-high,lefi-sum) 9 elseif right-sum z left-sum and right-sum z cross-sum 非递归代价: 10 return(right-low,right-high.right-sum) 常量 11 else return (cross-low.cross-high,cross-sum) O(nlog n非递归代价:常量 递归,理想状况下 问题规模是原来的 一半。 非递归代价: 线性 非递归代价: 常量 O(nlogn)