By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,435 Members | 1,499 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,435 IT Pros & Developers. It's quick & easy.

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

P: n/a
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/bookst...201633612&rl=1

If you know better suggestions, please tell me!

Thank you in advance

May 25 '07 #1
Share this Question
Share on Google+
11 Replies


P: n/a
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/bookst...201633612&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.
May 25 '07 #2

P: n/a
Very well. Now all I need is a good c++ algorithms book.

May 25 '07 #3

P: n/a
On May 26, 1:22 am, CellDivider <heid...@hotmail.comwrote:
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: ja*********@gmail.com
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

May 26 '07 #4

P: n/a
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.

May 26 '07 #5

P: n/a
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/
May 26 '07 #6

P: n/a
On May 26, 12:57 pm, Gennaro Prota <gennaro.pr...@yahoo.comwrote:
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: ja*********@gmail.com
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

May 26 '07 #7

P: n/a
In article <11**********************@h2g2000hsg.googlegroups. com>,
he*****@hotmail.com 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.
May 28 '07 #8

P: n/a
On May 28, 6:30 am, Jerry Coffin <jcof...@taeus.comwrote:
In article <1180174378.902824.132...@h2g2000hsg.googlegroups. com>,
heid...@hotmail.com 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:ja*********@gmail.com
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

May 28 '07 #9

P: n/a
On 26 May 2007 15:57:21 -0700, James Kanze wrote:
>On May 26, 12:57 pm, Gennaro Prota <gennaro.pr...@yahoo.comwrote:
[...]
>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/
May 28 '07 #10

P: n/a
In article <11**********************@p47g2000hsd.googlegroups .com>,
ja*********@gmail.com 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.
May 28 '07 #11

P: n/a
In article <85********************************@4ax.com>,
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.
May 28 '07 #12

This discussion thread is closed

Replies have been disabled for this discussion.