Algorithmic Efficiency
Add research to Algorithmic Efficiency by attaching materials such as relevant webpages, videos, images or pdf documents here
Algorithmic Efficiency on Social Media
Algorithmic Efficiency Summary
In computer science, algorithmic efficiency is a property of an algorithm which relates to the number of computational resources used by the algorithm. An algorithm must be analyzed to determine its resource usage, and the efficiency of an algorithm can be measured based on usage of different resources. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or continuous process. For maximum efficiency we wish to minimize resource usage. However, different resources such as time and space complexity cannot be compared directly, so which of two algorithms is considered to be more efficient often depends on which measure of efficiency is considered most important. For example, bubble sort and timsort are both algorithms to sort a list of items from smallest to largest. Bubble sort sorts the list in time proportional to the number of elements squared ( O ( n 2 ) {\displaystyle \scriptstyle {{\mathcal {O}}\left(n^{2}\right)}} , see Big O notation), but only requires a small amount of extra memory which is constant with respect to the length of the list ( O ( 1 ) {\textstyle \scriptstyle {{\mathcal {O}}\left(1\right)}} ). Timsort sorts the list in time linearithmic (proportional to a quantity times its logarithm) in the list's length ( O ( n log ⁡ n ) {\textstyle \scriptstyle {\mathcal {O\left(n\log n\right)}}} ), but has a space requirement linear in the length of the list ( O ( n ) {\textstyle \scriptstyle {\mathcal {O\left(n\right)}}} ). If large lists must be sorted at high speed for a given application, timsort is a better choice; however, if minimizing the memory footprint of the sorting is more important, bubble sort is a better choice.