amortized analysis often we are not so interested in the time complexity of individual operationsbut rather the time averaged running time of sequences of operations this is called amortized analysis it is different from average case analysiswhich we will discuss shortlyin that it makes no assumptions regarding the data distribution of input values it doeshowevertake into account the state change of data structures for exampleif list is sorted it should make any subsequent find operations quicker amortized analysis can take into account the state change of data structures because it analyzes sequences of operationsrather then simply aggregating single operations amortized analysis finds an upper bound on runtime by imposing an artificial cost on each operation in sequence of operationsand then combining each of these costs the artificial cost of sequence takes in to account that the initial expensive operations can make subsequent operations cheaper when we have small number of expensive operationssuch as sortingand lots of cheaper operations such as lookupsstandard worst case analysis can lead to overly pessimistic resultssince it assumes that each lookup must compare each element in the list until match is found we should take into account that once we sort the list we can make subsequent find operations cheaper so far in our runtime analysis we have assumed that the input data was completely random and have only looked at the effect the size of the input has on the runtime there are two other common approaches to algorithm analysisthey areaverage case analysis benchmarking average case analysis finds the average running time based on some assumptions regarding the relative frequencies of various input values using real-world dataor data that replicates the distribution of real-world datais many times on particular data distribution and the average running time is calculated benchmarking is simply having an agreed set of typical inputs that are used to measure performance both benchmarking and average time analysis rely on having some domain knowledge we need to know what the typical or expected datasets are ultimately we will try to find ways to improve performance by fine-tuning to very specific application setting