Big O - Cheat Sheet
Going to make myself a personal copy of a Big O cheat sheet, and try to explain why each data structure has certain properties to be a refresher for my data structure.
Array's have quick access to a specified index because arrays take a finite contiguous block or memory that can be used to pinpoint memory locations.
Search - O(n)
Array's have linear time search because there are no special properties to indicate the value you are trying to look for, therefore you have to search through the elements individually.
Insertion - O(n)
Array's take up a contiguous block of memory, therefore when a new element is added to the list, it must be recreated, and/or the elements may be shifted.
Deletion - O(n)
Same as insertion in that it takes a contiguous block of memory, and therefore needs to be shifted.
Space - O(n)
Requires as much space as elements
Must traverse through the top reference to get to index.
Search - O(n)
Must traverse through top reference to get to search value.
Insertion - O(1)
All you need to do is change reference links.
Deletion - O(1)
All you need to do is change the reference links.
Space - O(n)
Takes up as much space as its elements.
Must traverse through the head/tail reference to get to index.
Search - O(n)
Must traverse through head/tail reference to get to search value.
Insertion - O(1)
All you need to do is change reference links.
Deletion - O(1)
All you need to do is change the reference links.
Space - O(n)
Takes up as much space as its elements.
Array (Dynamic)
Access - O(1)Array's have quick access to a specified index because arrays take a finite contiguous block or memory that can be used to pinpoint memory locations.
Search - O(n)
Array's have linear time search because there are no special properties to indicate the value you are trying to look for, therefore you have to search through the elements individually.
Insertion - O(n)
Array's take up a contiguous block of memory, therefore when a new element is added to the list, it must be recreated, and/or the elements may be shifted.
Deletion - O(n)
Same as insertion in that it takes a contiguous block of memory, and therefore needs to be shifted.
Space - O(n)
Requires as much space as elements
Stack
Access - O(n)Must traverse through the top reference to get to index.
Search - O(n)
Must traverse through top reference to get to search value.
Insertion - O(1)
All you need to do is change reference links.
Deletion - O(1)
All you need to do is change the reference links.
Space - O(n)
Takes up as much space as its elements.
Queue
Access - O(n)Must traverse through the head/tail reference to get to index.
Search - O(n)
Must traverse through head/tail reference to get to search value.
Insertion - O(1)
All you need to do is change reference links.
Deletion - O(1)
All you need to do is change the reference links.
Space - O(n)
Takes up as much space as its elements.
Hashtable
Access - N/A
There is no concept of indexes in hashtables.
Search - Average O(1), Worst O(n)
Searching is quick because of hash function computation.
Insertion - Average O(1), Worst O(n)
Hashtables know where to add elements from the hash function, but there is a possibility to hashing strategy by have worst case collisions.
Deletion - Average O(1), Worst O(n)
Hashtables know where to delete elements from the hash function, but there is a possibility to hashing strategy by have worst case collisions.
Space - O(n)
Hashtables take up as much space as its elements.
Binary Search Tree
Access - Average O(log n), Worst O(n)
Tree structure allows you to traverse a tree in log n fashion.
Search - Average O(log n), Worst O(n)
Tree structure allows you to traverse a tree in log n fashion.
Insertion - Average O(log n), Worst O(n)
Tree structure allows you to traverse a tree in log n fashion.
Deletion - Average O(log n), Worst O(n)
Tree structure allows you to traverse a tree in log n fashion.
Space - O(n)
Takes up as much space as its elements
Comments
Post a Comment