算法
Pt950--
Android OS
展开
-
[算法]最大子序列和问题
问题:给定(可能有负数)整数A1,A2,A3,...,An,求∑j,k=i Ak的最大值。(为了降低难度,如果所有整数均为负数,则最大子序列和为0)通俗的讲,这个问题其实就是要找到这么多数中,哪几个相邻的数加起来的值是最大的。算法一: 分析:如果把所有数二分一下变成前半部分和后半部分,则最大子序列可能出现三中情况。第一种,整个最大子序列都在前半部分;第二种,整个子序列都在后半原创 2016-03-17 21:40:02 · 421 阅读 · 0 评论 -
[算法]折半查找
问题:给定一个整数X和整数序列A0,A1,...,An,整数序列已经预先排序好了,求下标i使得Ai=X,如果X不在序列中则返还i=-1分析:由于序列已经是排序好的了,所以优先验证X是否是居中的元素。如果是,则答案找到了。如果X小于居中元素,那么可以应用同样的策略继续折半查找居中元素左边的子序列;同理,如果X大于居中的元素,那么就查找居中元素右边的子序列。全部代码:pub原创 2016-03-18 00:07:49 · 365 阅读 · 0 评论 -
[算法]欧几里得算法——求解最大公因数
问题:两个整数的最大公因数是同时整除二者的最大整数。全部代码:public class GreatestCommonDivisor { public static void main(String[] args) { // TODO Auto-generated method stub long divisor = greatestCommonDivisor(原创 2016-03-18 00:31:09 · 601 阅读 · 0 评论