文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>编程珠玑读书笔记之算法设计技术

编程珠玑读书笔记之算法设计技术

时间:2010-11-02  来源:小培

 

平方算法:
maxsofar = 0;
for i =[0,n)
    sum = 0;
    for j=[i,n)
        sum+= x[j]
        maxsofar= max(maxsofar,sum);

分治算法:
float maxsum3(l,u)
        if(l>u)
               return 0;
        if(l==u)
               return max(0,x[l]);
        lmax= sum = 0;
        for(i=m;i>=l;i--)
               sum += x[i];
               lmax=max(lmax,sum);
        rmax = sum= 0;
        fori=(m,u]
               sum += x[i]
               rmax = max(rmax,sum);
        returnmax(lmax+rmax,maxsum3(l,m),maxsum3(m+1,u));
调用方法: answer = maxsum3(0,n-1)

线性算法:
maxsofar = 0;
maxendinghere = 0;
for i =[0,n)
        maxendinghere= max(maxendinghere+x[i],0);
        maxsofar= max(maxsofar,maxendinghere);


算法设计技术:
1.保存状态,避免重复计算。
2.将信息预处理到数据结构中。
3.分治算法。
4.扫描算法。与数组相关的问题经常可以通过思考“如何将x[0...i-1]的解扩展为x[0...i]地解来解决。
5.累积。
6.下界。确定相匹配的下界。


个人感觉上面的设计技术很重要,但是只有亲身经历过算法设计,才能够更深更真切的了解到其中的奥妙。

相关阅读 更多 +
排行榜 更多 +
西安交大通

西安交大通

生活实用 下载
长江云通

长江云通

生活实用 下载
translatez

translatez

生活实用 下载