1.1 Algorithms
The term Algorithm is used in computer science to describe a problem-solving method suitable for implementation as a computer program. It is the method, rather than the computer program itself, that we must study to learn how the problem is being attacked.
Most algorithms of interest involve methods of organizing the data involved in the computation. Objects created in this way are called data structures, and they also are central objects of study in computer science. Thus, algorithms and data structures go hand in hand.
The primary reason for us to learn about algorithm design is that it gives us the potential to reap huge savings, even to the point of making it possible to do tasks that would otherwise be impossible. In an application where we are processing millions of objects, it is not unusual to be able to make a program millions of times faster by using a well-designed algorithm. By contrast, investing additional money or time to buy and install a new computer holds the potential for speeding up a program by perhaps a factor of only 10 or 100. Careful algorithm design is an extremely effective part of the process of solving a huge problem, whatever the application area.
// TODO: complete it later 2022-01-20