introduction what this book isand what it isn' this book provides implementations of common and uncommon algorithms in pseudocode which is language independent and provides for easy porting to most imperative programming languages it is not definitive book on the theory of data structures and algorithms for the most part this book presents implementations devised by the authors themselves based on the concepts by which the respective algorithms are based upon so it is more than possible that our implementations differ from those considered the norm you should use this book alongside another on the same subjectbut one that contains formal proofs of the algorithms in question in this book we use the abstract big oh notation to depict the run time complexity of algorithms so that the book appeals to larger audience assumed knowledge we have written this book with few assumptions of the readerbut some have been necessary in order to keep the book as concise and approachable as possible we assume that the reader is familiar with the following big oh notation an imperative programming language object oriented concepts big oh notation for run time complexity analysis we use big oh notation extensively so it is vital that you are familiar with the general concepts to determine which is the best algorithm for you in certain scenarios we have chosen to use big oh notation for few reasonsthe most important of which is that it provides an abstract measurement by which we can judge the performance of algorithms without using mathematical proofs