A good c/c++ algorithms / design patterns book

Discussion in 'C++' started by CellDivider, May 25, 2007.

  1. CellDivider

    CellDivider Guest

    Hello folks,

    currently I'm looking for a good books that gives an overview of
    useful c/c++ algorithms and design patterns, in the manner of "what's
    the most efficient way to implement <often used function> ", singleton
    pattern etc. pp. . It should cover as much as possible.


    How good is this one?

    http://www.awprofessional.com/bookstore/product.asp?isbn=0201633612&rl=1

    If you know better suggestions, please tell me!

    Thank you in advance
    CellDivider, May 25, 2007
    #1
    1. Advertising

  2. CellDivider

    Ian Collins Guest

    CellDivider wrote:
    > Hello folks,
    >
    > currently I'm looking for a good books that gives an overview of
    > useful c/c++ algorithms and design patterns, in the manner of "what's
    > the most efficient way to implement <often used function> ", singleton
    > pattern etc. pp. . It should cover as much as possible.
    >
    >
    > How good is this one?
    >
    > http://www.awprofessional.com/bookstore/product.asp?isbn=0201633612&rl=1
    >

    It is the definitive book on design patterns.

    > If you know better suggestions, please tell me!
    >

    http://accu.org/index.php/book_reviews

    --
    Ian Collins.
    Ian Collins, May 25, 2007
    #2
    1. Advertising

  3. CellDivider

    CellDivider Guest

    Very well. Now all I need is a good c++ algorithms book.
    CellDivider, May 26, 2007
    #3
  4. CellDivider

    James Kanze Guest

    On May 26, 1:22 am, CellDivider <> wrote:
    > Very well. Now all I need is a good c++ algorithms book.


    Algorithms are pretty much independant of the language; the
    reference is Knuth, and he presents them in assembler.
    Otherwise, Sedgewick: there are versions in Pascal, C and, I
    think C++ (but from what I hear, the C++ is really just rehashed
    C). Don't get hung up on the language the book is officially
    in; one of the best books I know about programming in C is
    "Programming Tools in Pascal". (Although dated, it's still
    worth reading today.)

    --
    James Kanze (Gabi Software) email:
    Conseils en informatique orientée objet/
    Beratung in objektorientierter Datenverarbeitung
    9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
    James Kanze, May 26, 2007
    #4
  5. CellDivider

    CellDivider Guest

    I can only find "Software Tools in Pascal" by Kernighan, if that's the
    one you mean. Or do you mean "The C Programming Language" by Kernighan
    instead (because this one looks like a pure Pascal book)?

    The Sedgewick seems to be a good hint, thanks.
    CellDivider, May 26, 2007
    #5
  6. On 26 May 2007 03:12:58 -0700, CellDivider wrote:

    >I can only find "Software Tools in Pascal" by Kernighan, if that's the
    >one you mean. Or do you mean "The C Programming Language" by Kernighan
    >instead (because this one looks like a pure Pascal book)?


    Pretty sure that James meant the former. It's by Kernighan and Plauger
    and is a rewrite of "Software Tools":

    Software Tools (1976) ISBN: 020103669X
    Software Tools in Pascal (1981) ISBN: 0201103427

    Apologies if it bothers you that I answered this, James. Just trying
    to take some of your replying work off :)

    --
    Gennaro Prota -- C++ Developer, For Hire
    https://sourceforge.net/projects/breeze/
    Gennaro Prota, May 26, 2007
    #6
  7. CellDivider

    James Kanze Guest

    On May 26, 12:57 pm, Gennaro Prota <> wrote:
    > On 26 May 2007 03:12:58 -0700, CellDivider wrote:


    > >I can only find "Software Tools in Pascal" by Kernighan, if that's the
    > >one you mean. Or do you mean "The C Programming Language" by Kernighan
    > >instead (because this one looks like a pure Pascal book)?


    > Pretty sure that James meant the former.


    Yes. And it is "pure" Pascal (except that the authors treat
    Pascal as much like C as possible). That's just my point: the
    language isn't always that important---reading it will improve
    your C, and even your C++, considerably, even if it doesn't
    contain a line of C.

    > It's by Kernighan and Plauger
    > and is a rewrite of "Software Tools":


    > Software Tools (1976) ISBN: 020103669X
    > Software Tools in Pascal (1981) ISBN: 0201103427


    Yes. The original (which I've not read) was in RatFor, a
    Fortran preprocessor, and included the code for the
    preprocessor.

    It's interesting to note the dates. As late as 1981, two of the
    world's leading C experts felt it necessary to write in Pascal
    in order to publish; C wasn't yet widespread enough. (Which
    rather surprises me; I was working professionally in C by
    1982-1983, and I had the impression that I was rather late
    getting into it.)

    > Apologies if it bothers you that I answered this, James. Just
    > trying to take some of your replying work off :)


    There's nothing to apologize about. Anyone who has anything to
    contribute is always welcome.

    --
    James Kanze (Gabi Software) email:
    Conseils en informatique orientée objet/
    Beratung in objektorientierter Datenverarbeitung
    9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
    James Kanze, May 26, 2007
    #7
  8. CellDivider

    Jerry Coffin Guest

    In article <>,
    says...
    > I can only find "Software Tools in Pascal" by Kernighan, if that's the
    > one you mean. Or do you mean "The C Programming Language" by Kernighan
    > instead (because this one looks like a pure Pascal book)?
    >
    > The Sedgewick seems to be a good hint, thanks.


    At:

    http://tinyurl.com/39nxcj

    There's a thread that talks about books on algorithms. A short summary
    of my comments from that thread is that I would (strongly) recommend
    _Introduction to Algorithms_ by Cormen, Leiserson, Rivest and Stein, or
    _The Art of Computer Programming_ by Knuth, but I recommend (strongly)
    against any of Sedgewick's books. His coverage of algorithms is quite
    poor, and in the language-specific versions (e.g. _Algorithms in C++_)
    the use of the language is even worse.

    --
    Later,
    Jerry.

    The universe is a figment of its own imagination.
    Jerry Coffin, May 28, 2007
    #8
  9. CellDivider

    James Kanze Guest

    On May 28, 6:30 am, Jerry Coffin <> wrote:
    > In article <>,
    > says...


    > > I can only find "Software Tools in Pascal" by Kernighan, if that's the
    > > one you mean. Or do you mean "The C Programming Language" by Kernighan
    > > instead (because this one looks like a pure Pascal book)?


    > > The Sedgewick seems to be a good hint, thanks.


    > At:


    > http://tinyurl.com/39nxcj


    > There's a thread that talks about books on algorithms. A short summary
    > of my comments from that thread is that I would (strongly) recommend
    > _Introduction to Algorithms_ by Cormen, Leiserson, Rivest and Stein, or
    > _The Art of Computer Programming_ by Knuth, but I recommend (strongly)
    > against any of Sedgewick's books. His coverage of algorithms is quite
    > poor, and in the language-specific versions (e.g. _Algorithms in C++_)
    > the use of the language is even worse.


    Interesting. I learned algorithms from Wirth---the second
    edition, which used Modula 2 for examples. Except for very poor
    typography (a whole line dropped in one example program, for
    example), I found it excellent. But I have Sedgewick as well
    (the C version), and I have no real complaints. It's more
    complete (i.e. covers more algorithms) than Wirth, even if the
    explinations aren't nearly as clear. Knuth is, of course, the
    absolute reference, but 1) it's dated (or at least the editions
    I have are), and 2) the sample code is in assembler, which makes
    it somewhat more difficult to follow on the whole. (On the
    other hand, the descriptive text is about the best you can
    imagine. Knuth is one of those rare people who are both a
    technical genius and a genius with words.) The result is that
    while I have all three, when I need to look up a standard
    algorithm quickly, I'll go to Sedgewick first.

    --
    James Kanze (GABI Software) email:
    Conseils en informatique orientée objet/
    Beratung in objektorientierter Datenverarbeitung
    9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
    James Kanze, May 28, 2007
    #9
  10. On 26 May 2007 15:57:21 -0700, James Kanze wrote:

    >On May 26, 12:57 pm, Gennaro Prota <> wrote:
    > [...]
    >> It's by Kernighan and Plauger
    >> and is a rewrite of "Software Tools":

    >
    >> Software Tools (1976) ISBN: 020103669X
    >> Software Tools in Pascal (1981) ISBN: 0201103427

    >
    >Yes. The original (which I've not read) was in RatFor, a
    >Fortran preprocessor, and included the code for the
    >preprocessor.
    >
    >It's interesting to note the dates. As late as 1981, two of the
    >world's leading C experts felt it necessary to write in Pascal
    >in order to publish; C wasn't yet widespread enough.


    Hmm, is that the reason? Perhaps P.J. Plauger could read this and
    answer in person (but I guess he rarely reads the unmoderated group).

    --
    Gennaro Prota -- C++ Developer, For Hire
    https://sourceforge.net/projects/breeze/
    Gennaro Prota, May 28, 2007
    #10
  11. CellDivider

    Jerry Coffin Guest

    In article <>,
    says...

    [ ... ]

    > Interesting. I learned algorithms from Wirth---the second
    > edition, which used Modula 2 for examples. Except for very poor
    > typography (a whole line dropped in one example program, for
    > example), I found it excellent. But I have Sedgewick as well
    > (the C version), and I have no real complaints. It's more
    > complete (i.e. covers more algorithms) than Wirth, even if the
    > explinations aren't nearly as clear. Knuth is, of course, the
    > absolute reference, but 1) it's dated (or at least the editions
    > I have are), and 2) the sample code is in assembler, which makes
    > it somewhat more difficult to follow on the whole. (On the
    > other hand, the descriptive text is about the best you can
    > imagine. Knuth is one of those rare people who are both a
    > technical genius and a genius with words.) The result is that
    > while I have all three, when I need to look up a standard
    > algorithm quickly, I'll go to Sedgewick first.


    That's largely why I posted a link to the entire thread instead of only
    to one of my own posts -- while I think his books are quite poor, there
    are clearly others who disagree, and I didn't want to give the
    impression that my own opinion was the only correct one, or anything
    like that.

    To some degree any book on algorithms and data structures is something
    of a tradeoff between depth of coverage, breadth of coverage, and sheer
    size of book. Perhaps rather than a simple "I recommend [for|against]
    this book, it would be more useful to attempt to rate the books on a
    number of dimensions, and let the reader draw their own conclusions.

    K = _The Art of Computer Programming_, Donald Knuth
    C = _Introduction to Algorithms_, Cormen, Lieserson, Rivest and Stein
    W = _Algorithms + Data Structures = Programs_, Niklaus Wirth
    S = _Algorithms {in [C|C++]}_, Robert Sedgewick

    V Area \ Book -> K C W S
    Depth of coverage 10 8 6 2
    Breadth of coverage 5 10 4 8
    Clarity of text 10 8 9 3
    Approachability 3 5 10 6

    Of course, these are my subjective opinions (on a relative scale of 1-
    10, in case that wasn't obvious). I certainly don't mean to imply that
    they're right and everybody else's opinions are wrong. Rather, my point
    here is mostly to provide at least some attempt at information about the
    books themselves, separate from my opinion about the relative importance
    of each area. I think James and I probably agree for the most part about
    the ratings of the books in the individual areas, and mostly differ in
    the importance we attach to those areas.

    Likewise, if anybody wants to suggest things like 1) different areas to
    consider/rate, 2) different ratings for each area, or 3) ratings for
    more books, those would undoubtedly be useful additions -- perhaps we
    can turn this thread into a source of helpful guidance instead of mostly
    unexplained opinions.

    --
    Later,
    Jerry.

    The universe is a figment of its own imagination.
    Jerry Coffin, May 28, 2007
    #11
  12. CellDivider

    Jerry Coffin Guest

    In article <>,
    address@spam_this.com says...

    [ ... ]

    > >It's interesting to note the dates. As late as 1981, two of the
    > >world's leading C experts felt it necessary to write in Pascal
    > >in order to publish; C wasn't yet widespread enough.

    >
    > Hmm, is that the reason? Perhaps P.J. Plauger could read this and
    > answer in person (but I guess he rarely reads the unmoderated group).


    It's been a long time, so I'm not sure, but if memory serves, in the
    foreword or introduction, they talk a bit about this. If I'm not
    mistaken, it was mostly that at the time C and UNIX were still
    sufficiently closely bound that if you had one, you probably also had
    the other. That being the case, if you had C you probably also had (more
    complete versions of) the tools they were presenting.

    --
    Later,
    Jerry.

    The universe is a figment of its own imagination.
    Jerry Coffin, May 28, 2007
    #12
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Abhijit Mhatre
    Replies:
    2
    Views:
    424
  2. crichmon
    Replies:
    4
    Views:
    471
    Mabden
    Jul 7, 2004
  3. vlsidesign
    Replies:
    26
    Views:
    951
    Keith Thompson
    Jan 2, 2007
  4. Christopher

    Book - Design Patterns, in C++

    Christopher, Dec 1, 2007, in forum: C++
    Replies:
    1
    Views:
    440
  5. Gavri Fernandez
    Replies:
    1
    Views:
    138
    Jason Sweat
    Mar 2, 2005
Loading...

Share This Page