patterns of algorithms this presents several fundamental topics related to the theory of algorithms algorithms these include dynamic programming (section )randomized algorithms (section )and the concept of transform (section each of these can be viewed as an example of an "algorithmic patternthat is commonly used for wide variety of applications in additionwe will discuss number of numerical algorithms in section section on randomized algorithms presents the skip list (section the skip list is probabilistic data structure that can be used to implement the dictionary adt the skip list is comparable in complexity to the bstyet often outperforms the bstbecause the skip list' efficiency is not tied to the values of the dataset being stored dynamic programming consider again the recursive function for computing the nth fibonacci number int fibr(int nif ( < return return fibr( - fibr( - )/base case /recursive call the cost of this algorithm (in terms of function callsis the size of the nth fibonacci number itselfwhich our analysis showed to be exponential (approximately why is this so expensiveit is expensive primarily because two recursive calls are made by the functionand they are largely redundant that iseach of the two calls is recomputing most of the seriesas is each sub-calland so on thusthe smaller values of the function are being recomputed huge number of times