enhances your reasoning and general cognitive abilities • Saves your company costs buying expensive hardware. • Become a world class software engineer. • Figure out solutions easily by noticing patterns amongst related problem set.
steps to accomplish a task. • Ironically it can be defined as what a programmer did when he is not sure how he solved a problem. • Examples: Finding the maximum element in an array, Finding the optimal route to deliver a packet, “Shopping for items in a grocery store”. Simple algorithmic problems. • Find the sum of numbers from 1 to 100 • Find the sum of the squares of the first 100 numbers Asymptotic Complexity Big O notation is used in Computer Science to describe the performance or complexity of an algorithm. • O(1), O(n), O(logn), O(nlogn), O(n^2), O(n^3)
organising, storing and retrieving data. Different kinds of data structures are better suited for certain kinds of task. For instance SQL databases commonly use B-tree indexes for data storage, while compilers use Hash tables to look up identifiers. Examples of commonly used Data structures • Linear data structures: Array, List, LinkedList, Queue, Stack • Set • Hash Table • Tree • Graph
a browser history? 2)What is the best datastructure to implement a call / function return sequence? 3)Find the nth fibonacci number using recursion. 4)Optimise the solution in (3) for performance using any data structure of choice.