Algorithm design techniques
An algorithm is a mathematical solution to a real-world problem. When designing an algorithm, we keep the following three design concerns in mind as we work on designing and fine-tuning the algorithms:
- Concern 1: Is this algorithm producing the result we expected?
- Concern 2: Is this the most optimal way to get these results?
- Concern 3: How is the algorithm going to perform on larger datasets?
It is important to understand the complexity of the problem itself before designing a solution for it. For example, it helps us to design an appropriate solution if we characterize the problem in terms of its needs and complexity.
Generally, the algorithms can be divided into the following types based on the characteristics of the problem:
- Data-intensive algorithms: Data-intensive algorithms are designed to deal with a large amount of data. They are expected to have relatively simplistic processing requirements. A compression...