An algorithm can be defined as a set of step-by-step instructions which govern the outline of a program that needs to be executed using computational resources. The execution can be in any programming language such as R, Python, and Java. Data is an intricate component of any program, and depending on how data is organized (data structure), your execution time can vary drastically. That's why data structure is such a critical component of any good algorithm implementation. This book will concentrate primarily on running time or time complexity and partly on memory utilization and their relationship during program execution. The current chapter will cover following topics in detail:
Best, worst, and average cases
Computer versus algorithm
Algorithm asymptotic analysis
Upper bounds evaluation
Lower bounds evaluation
Big Θ notation
Simplifying rules
Classifying functions
Computation evaluation of a program
Analyzing problems
Space bounds
Empirical analysis