Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
From the Preface of the book: Our book is neither a programming manual nor an account of the proper use of data structures. Still less is it a "cookbook" containing a long catalogue of programs ready to be used directly on a machine to solve certain specific problems, but giving at best a vague idea of the principles involved in their design. On the contrary, the aim of our book is to give the reader some basic tools needed to develop his or her own algorithms, in whatever field of application they may be required.
Thus we concentrate on the techniques used to design and analyse efficient algorithms. Each technique is first presented in full generality. Thereafter it is illustrated by concrete examples of algorithms taken from such different applications as optimization, linear algebra, cryptography, operations research, symbolic computation, artificial intelligence, numerical analysis, computing in the humanities, and so on. Although our approach is rigorous and theoretical, we do not neglect the needs of practitioners: besides illustrating the design techniques employed, most of the algorithms presented also have real-life applications.
To profit fully from this book, you should have some previous programming experience. However, we use no particular programming language, nor are the examples for any particular machine. This and the general, fundamental treatment of the material ensure that the ideas presented here will not lose their relevance. On the other hand, you should not expect to be able to use the algorithms we give directly: you will always be obliged to make the necessary effort to transcribe them into some appropriate programming language. The use of Pascal or similarly structured language will help reduce this effort to the minimum necessary.
Some basic mathematical knowledge is required to understand this book. Generally speaking, an introductory undergraduate course in algebra and another in calculus should provide sufficient background. A certain mathematical maturity is more important still. We take it for granted that the reader is familiar with such notions as mathematical induction, set notation, and the concept of a graph. From time to time a passage requires more advanced mathematical knowledge, but such passages can be skipped on the first reading with no loss of continuity