in the following tablewe list the most common growth rates in order from lowest to highest we sometimes call these growth rates the time complexity of functionor the complexity class of functioncomplexity class name example operations ( constant appendget itemset item (lognlogarithmic finding an element in sorted array (nlinear copyinsertdeleteiteration nlogn linear-logarithmic sort listmerge sort quadratic find the shortest path between two nodes in graph nested loops cubic matrix multiplication exponential 'towers of hanoiproblembacktracking composing complexity classes normallywe need to find the total running time of number of basic operations it turns out that we can combine the complexity classes of simple operations to find the complexity class of more complexcombined operations the goal is to analyze the combined statements in function or method to understand the total time complexity of executing several operations the simplest way to combine two complexity classes is to add them this occurs when we have two sequential operations for exampleconsider the two operations of inserting an element into list and then sorting that list we can see that inserting an item occurs in (ntime and sorting is (nlogntime we can write the total time complexity as ( nlogn)that iswe bring the two functions inside the owe are only interested in the highest order termso this leaves us with just (nlognif we repeat an operationfor examplein while loopthen we multiply the complexity class by the number of times the operation is carried out if an operation with time complexity ( ( )is repeated (ntimes then we multiply the two complexitieso( (no( ) (nf( )for examplesuppose the function fhas time complexity of ( and it is executed times in while loop as followsfor range( )