# Prepping for a Google Interview

## March 13, 2014

These are a bunch of notes I took when I was reading through *Cracking the Coding Interview* in prep for a Google Interview

- spelling algorithms correctly is important

peaks

- insertion sort always O(N^2) because going through and moving
- binary sort can assist it to be O(log(n)n) for insertions but still N^2 for swaps
- merge sort two arrays, sort, then merge, then split and repeat. O(log(n)n) complexity
- priority queue - - maxheap, nodes are always larger than or equal to their children (max heap property) - minheap, nodes are always smaller than or equal to their children (min heap property)
- heap sort – heap on a tree, (breadth first view,)
int array[7]; indexies
-AVL trees
- traverse = n
- insert nlog(n)
- delete min
- find next min and max and next smaller and next min
- log(n),

Comparison Model -Searching: (lng) -Sorting nln(n) -All input items are blackboxes In reality

Linear time sorting for not large - O(n sqrt(lnln(n)) -Prehashing = alpha = n/m time, orderone = theta(1+alpha) (a*k)mod(2^w) » 2^(r-w) where m = 2^r also k mod m - hash the function and modulus

Hash table properties

- make use of all info provided by key (Key:Value)
- uniformly distrutes output across table
- maps similar keys to very different hash values
- uses only very fast operations to minimize run time.

TODO

- Binary Tree / n-tree / AVL Tree / tr-tree
- Their Traversals
- Insert/delete/search

- Make Graph / Search / Edges/Vertices
- Quick/MergeSort