Recommend a starter book for algorithms

Source: Internet
Author: User

Recommend a very good algorithm for getting started books:

"Algorithm design and Analysis Basis" (2nd edition), (United States) Anany Levitin, Pan Yan translation.

In addition to "thinking in Java", this is another book I have read two-thirds of the content and want to keep on reading. This book is very good, can feel the author is trying to close to the reader, the explanation is clear and easy to understand, involving more comprehensive, and there are many in other algorithmic books never talked about things (such as algorithmic problem solving basis, a large number of thought-provoking puzzles).

Generally speaking, the readability is very strong, the interest is strong, the practicability is fair, has carried on the very good balance and the compromise between the theory and the practicality, has the very good inspiration function. If you want to have an easy-to-understand and deep algorithm primer, this book is a great choice.

The most authoritative algorithm book is naturally the introduction of algorithms. General algorithm Books, I think these two are enough! There seems to be a book called "Programmer's Practical Algorithm", just flipped over in the bookstore, to see the title can be inferred, this book as a manual algorithm handbook should be very good.

PS: Thinking about the algorithm

What exactly is the algorithm? As the name implies, the method of calculation. The algorithm is to use the method of calculation to realize the problem solving ideas and ways.

The hardware provides the physical resources needed for computing, while the algorithm provides the ideas and techniques needed for computing. Hardware and algorithms, together constitute the computing power of the computer. Software is simply a logical entity that can be used by the combination of hardware and algorithms.

This involves three basic questions: what is calculation? How to calculate? Can everything be counted?

What is it calculated?

      1. In the popular sense, it refers to mathematical operations, subtraction, modulo and others, and most of the calculations (including subtraction, multiplication, addition, modulus, no matter how complex) can be achieved using addition;

      2. The computer is now able to process text, so what is the computational technology for working with text?

      3. At the level of computer hardware, any operation is implemented using bit arithmetic, and how to use bitwise arithmetic to realize various operations is undoubtedly the best thing for mathematicians.

      4. Bit operation is the logical representation and change of physical state. The physical state can be achieved by electronic, mechanical, or any other possible physical entity; This is undoubtedly what physicists are good at.

      5. In the human body and in other organisms, the computational physical entities may be neurons, biological electricity and other things carried, what is the calculation unit, is still a mystery.

how to calculate ?

First of all, the part of scientific calculation, which is related to mathematics and specific fields (especially engineering field), can usually be calculated and improved by the relevant theorems and formulae, and the computing technology of text processing is the new application field of computer. How to calculate the problem, It is probably the question of choosing the basic unit of computing (such as subtraction, data replication) and how it is combined (control flow, sequence, or concurrency).

Concurrent computing, or parallel computing, must be the mainstream of the future. The way in which the human brain is calculated is likely to be parallel in the way it is used. Assuming a square meter of space can be placed 100 cpu, then, 100 square meters of space can be placed 10000 CPU, assuming that the parallel computing algorithm utilization is 50%, then, there are 5000 CPU computing power, which means that, now a year of calculation, may only need 365/5000 x24 = 1.752 hours of work. Think about the future of the IT world if you adopt better parallel technologies.

can everything be counted?

Clearly, at least for the time being, the answer is no. This is the problem of computational theory. And, if the algorithm is applied mechanically to everyday life, it often seems very clumsy. What kind of computing units and ways do humans (and even other organisms) take to make people feel so nimble and changeable when they think about problems, or is it a very worthwhile problem to explore.

where is the program developer?

The problem of 1 and 2 is solved on the basis of the plane of physical operation and bit operation. Moreover, the scientific calculation is mainly done by scientists in the field of research, and for the program developers, the so-called algorithm should mainly refer to the algorithm technology used in the text processing.

Recommend a starter book for algorithms

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.