其他分享
首页 > 其他分享> > Programming Pearls笔记之二

Programming Pearls笔记之二

作者:互联网

原文链接:http://www.cnblogs.com/Open_Source/archive/2012/08/05/2623635.html <?xml version="1.0" encoding="utf-8"?> Programming Pearls笔记之二

Programming Pearls笔记之二

  这里是编程珠玑(Programming Pearls)第二部分(中间五个专栏)的笔记.

1 效率和正确性

2 最大子序列和

  maxendinghere是以当前下标为最后一个元素的最大子序列和(只有当包含当前元素值为0时可以是空序列),maxsofar是从数组开始到当前下标为止的最大子序列和.假设对于当前下标i-1成立.下面将这个状态推广到i.对于i,这时最大子序列和只有两种可能.要么还是maxsofar,要么是maxendinghere+x[i]. maxendinghere+[i]若小于0,则从0开始,于是代码如下.

maxsofar = 0
maxendinghere = 0
for i = [0, n]
    /* invariant: maxendinghere and maxsofar
       are accurate for x[0..i-1] */
    maxendinghere = max(maxendinghere + x[i], 0)
    maxsofar = max(max, maxendinghere)

  其实这和上面的伪代码基本是一样的.

3 累加数组

4 哨兵元素

5 多项式计算

Date: 2012-07-25 三

Author: Hu Wenbiao

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0

转载于:https://www.cnblogs.com/Open_Source/archive/2012/08/05/2623635.html

标签:Pearls,sum,maxsofar,Programming,之二,cumarr,max,序列,maxendinghere
来源: https://blog.csdn.net/weixin_30765319/article/details/97236124