473,405 Members | 2,354 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,405 software developers and data experts.

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

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
11 3698
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
Very well. Now all I need is a good c++ algorithms book.

May 25 '07 #3
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
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
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
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
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
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
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
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
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

24
by: matty | last post by:
Go away for a few days and you miss it all... A few opinions... Programming is a craft more than an art (software engineering, not black magic) and as such, is about writing code that works,...
2
by: Design Pattern Catalog | last post by:
Thank you for your interest in "Design Patterns: Elements of Reusable Object-Oriented Design", by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. This message answers several...
4
by: Joakim Olesen | last post by:
Hi, I'm looking for a book/books about design patterns (factory patterns, singleton patterns etc). The book doesn't have to be aimed towards C# developers in particular, but the patterns should...
13
by: John Salerno | last post by:
Here are a few I'm considering: Design Patterns Explained : A New Perspective on Object-Oriented Design (2nd Edition) (Software Patterns Series) by Alan Shalloway Design Patterns C# by...
2
by: Carlo Stonebanks | last post by:
I have the infamous GoF Design Patterns boo - it's been sittin gon my shelf for years. I have a huge reading list and find this book a rather dry read and am always putting it off. I have...
2
by: efrat | last post by:
Hello, I'm planning to use Python in order to teach a DSA (data structures and algorithms) course in an academic institute. If you could help out with the following questions, I'd sure...
5
by: macca | last post by:
Hi, I'm looking for a good book on PHP design patterns for a OOP beginner - Reccommendations please? Thanks Paul
76
by: lorlarz | last post by:
Crockford's JavaScript, The Good Parts (a book review). This shall perhaps be the world's shortest book review (for one of the world's shortests books). I like Douglas Crockford (because I am a...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.