从零开始读算法导论第三版 求最大子数组和 LUA实现
来源:互联网 发布:女生黄金比例身材算法 编辑:程序博客网 时间:2024/06/17 00:06
A = {13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7}function find_max_crossing_subappay(A, low, mid, high) local left_sum = nil local sum = 0 local max_left = -1 for i = mid, low, -1 do sum = sum + A[i] if not left_sum or sum > left_sum then left_sum = sum max_left = i end end local right_sum = nil sum = 0 local max_right = -1 for j = mid + 1, high do sum = sum + A[j] if not right_sum or sum > right_sum then right_sum = sum max_right = j end end return max_left, max_right, left_sum + right_sumendfunction find_maximum_subarray(A, low, high) if high == low then return low, high, A[low] else local mid = math.floor((low + high) / 2) local left_low, left_high, left_sum = find_maximum_subarray(A, low, mid) local right_low, right_high, right_sum = find_maximum_subarray(A, mid + 1, high) local cross_low, cross_high, cross_sum = find_max_crossing_subappay(A, low, mid, high) if left_sum >= right_sum and left_sum >= cross_sum then return left_low, left_high, left_sum elseif right_sum >= left_sum and right_sum >= cross_sum then return right_low, right_high, right_sum else return cross_low, cross_high, cross_sum end endendprint(find_maximum_subarray(A,1,#A))
阅读全文
0 0
- 从零开始读算法导论第三版 求最大子数组和 LUA实现
- 从零开始读算法导论第三版 归并排序 LUA实现
- 算法导论第三版4.1最大和子数组思考
- 《算法导论》中求最大子数组的C++实现
- 获得连续子数组的最大和(见算法导论第三版第三章)
- 算法导论第三章 最大子数组
- 【算法导论】求最大子数组
- 算法导论 - 最大和连续子数组
- 《算法导论》最大子数组和
- <算法导论》第四章的求最大子数组的C语言实现
- [算法导论-分治策略]求最大子数组之各种解法及源代码实现
- 「算法导论」:分治法求最大子数组
- 算法导论-----分治策略----------求最大子数组
- 算法导论-求最大子数组-分治策略 c++版本
- 求子数组的最大和【算法】
- 子数组求最大和-算法-java
- 算法导论—最大子数组C/C++实现
- 算法导论书,page41,最大子数组,java代码实现
- [LeetCode] 389.Find the Difference
- swagger和gitlab结合做API文档
- Windows下编译caffe,建立caffe的vs工程
- 文章标题
- Android6.0 WebView播放视频源码分析
- 从零开始读算法导论第三版 求最大子数组和 LUA实现
- 忘记oracle的sys用户密码怎么修改
- [LeetCode] 371.Sum of Two Integers
- ubuntu下配置git和github
- C#--程序登录时写入登录日志
- 波雷费密码 Playfair Cipher 及 希尔密码 Hill Cipher 原理简述
- [LeetCode] 412.Fizz Buzz
- JQuery小结
- eclipse配置JDK