Why Data Structures & Algorithms?
The primary goal of this course is to improve the overall efficiency of a computer program. Data structures are required to organize data in order to develop more efficient programs.
According to Prof. Shaffer, Virginia Tech University, Writer of A Practical Introduction to Data Structures and Algorithm Analysis: "The choice of data structure and algorithm can make the difference between a program running in a few seconds or many days."
A solution is said to be efficient if it solves the problem within its resource constraints; Space & Time. The cost of a solution is the amount of resources that the solution consumes.
There are often many techniques (algorithms) to solve a problem. How do we choose between them?
To develop a computer program, It is necessary to set the following two goals:
1) To design an algorithm that is easy to understand, code, debug.
2) To design an algorithm that makes efficient use of the computer’s resources.
David Eppstein's Course on Algorithms