ADT - Abstract Data Types, seem to be used primarily for modeling algos. Implementation will differ in languages.

*computational_complexity* - includes runtime and memory measurements typically but can include other factors such as network communication

*algorithmic_efficiency* is measured by *computational_complexity*

*runtime_complexity* is a function T(N) which represents a constant, the variable value N cannot be 0 to describe the best case scenario because the the best case must have some process

*space_complexity *is S(N) the represents the number of fixed-size memory units used by the algorithm for an input of size N. Example: an algorithm that duplicates a list of numbers is S(N) = 2N + k, where k is a constant representing memory for things like loop counter integer and list pointers.

*auxiliary_space_complexity *is the space complexity not including the input data so in S(N) = 2N + k, auxiliary space complexity is the k.