Giter Club home page Giter Club logo

clrs-notes-solutions's Introduction

算法小论

  1. 缘起

在写了一些开源软件和程序,接触了一些业界牛人后,我发现自己虽然在计算机这个行业工作了六七年,但对于算法还水平很一般,本科是学物理的:)

在自己闷头看书看了几个月之后,我发现,学习算法最好的方式还是扎扎实实的看书、查资料、完成课后的习题,能学多少是多少。

同时,我也很喜欢自由和分享的理念。

于是把自己的笔记和答案公布在github上就成为一个很酷的选择。

我的灵感来自于《redis设计与实现》这本书,黄同学作为一个90后果然很萌。

因为这不是什么很正经的书,所以不要对我的更新质量和速度抱有任何的期望~

希望大家也能找到自己可以享受生活、享受学习、享受战斗的道路,Just for fun!

  1. 学习资料

我手上的课本是 算法导论-第3版-英文原版

还看了网易的公开课 麻省理工学院公开课:算法导论

以及老师自己写的导师手册-第2版 Instructor's Manual,也就是标准答案啦

  1. 反馈

欢迎大家写issue或者写邮件给我,关于算法相关的问题,当然我本人也是菜鸟一只,哈哈。

  1. 语言(Language)

为了写起来方便点,我就全部采用我的母语——中文来编写了。如果有人开issue并有10人跟帖的话,我会考虑把这些资料翻译成英语。呵呵。

For simple writing, I use my mother language -- Chinese. If there are more than 10 people post a issue, I will consider translate it to English.LOL.

  1. 日志

2014.07.04 完成第二章! 2014.06.30 开始,完成第一章!

∞. 许可证

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

cc

clrs-notes-solutions's People

Contributors

hardysimpson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clrs-notes-solutions's Issues

Something wrong with 4.1-5

这个算法有一点问题


FIND-MAXIMUM-SUBARRAY(A, low, high)
    max = A[low]
  j-max = A[low]
  left = right = low
  j-left = j-right = low

    for j = low + 1 to high
    sum = j-max + A[j]

    if sum > j-max
      j-max = sum
      j-right = j
    else 
      j-max = 0
      j-left = j + 1

    if j-max > max
      max = j-max
      left = j-left
      right = j-right

  return(left, right, max)

如果遇到负数就抛弃前面所有的和,遇到类似这样的序列{0,13,-1,2}就会出问题。
所以应该是前面所有的和加起来小于零了才抛弃,有最大值就更新最大值。
这个算法应该是对的:

    struct Ret_C4
    {
        int low, high;
        float sum;
        Ret_C4(int clow,int chigh,float csum) : low(clow), high(chigh), sum(csum){}
    };
    Ret_C4 find_max_subarray_iter_n(float *A, int low, int high)
    {
        float sum = 0;
        Ret_C4 ret(low,low,0);
        int cur_begin = low;
        int cur_end = low;
        for (size_t i = low; i <= high; i++)
        {
            sum += A[i];
            cur_end = i;
            if (sum<0)
            {
                sum = 0;
                cur_begin = i + 1;
                continue;
            }

            if (sum > ret.sum)
            {
                ret.sum = sum;
                ret.high = cur_end;
                ret.low = cur_begin;
            }
        }
        return ret;
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.