Presented by�Guang Hu
DISCLAIMER
This workshop is not officially endorsed by the university or the teaching staff and may not fully reflect the assessable subject content. Any tutors that participate in this workshop have verbally chosen to do so voluntarily and are not expected to represent the teaching team.
TOC
General exam advice
Data structures
Sorting algorithms
Graphing algorithms
Q+A
Practice questions
General exam advice
Data structures
Concrete data structures:
Abstract data structures:
Algorithms:
Analysis
01
02
03
00
Concrete data structures:
Array & Dynamic Array
Operations:
Concrete data structures:
Sorted Array & Sorted Dynamic Array
Operations:
Concrete data structures:
Linked List
Operations:
Concrete data structures:
Sorted Linked List
Operations:
Concrete data structures:
Binary Search Tree (BST)
Operations:
Concrete data structures:
AVL Tree & Others
Operations:
Concrete data structures:
Hash Table
Operations:
Concrete data structures:
Heap
Operations:
Abstract data structures:
Dictionary
Abstract data structures:
Stack
Abstract data structures:
Queue
Abstract data structures:
Priority Queue
Explicit Graph & Implicit Graph
G = (V,E):
Properties:
Sorting algorithms
Selection sort
Insertion sort
Quicksort (slow sort) + Hoare’s partitioning scheme
Mergesort (top down + bottom up)
Heapsort (uses a priority queue)
Distribution Counting
01
02
03
04
05
06
Sorting algorithms: Selection sort
Find smallest item put at the beginning of the unsorted part of the array, then shrink size of unsorted part of array AND repeat.
Sorting algorithms: Insertion sort
Compare two items, if out of order swap, repeat until item in correct spot, then continue to next item until you reach the end of the array.
Sorting algorithms: Quicksort (slow sort)
Recursively: Choose pivot then use Hoare’s partitioning scheme to partition elements to either side of the pointer, then call quicksort on either side until you get the singleton case.
Sorting algorithms: Mergesort
Top down: recursively half repeatedly until you get to the singleton case, then merge the halves. USES A STACK.
Bottom up: iteratively breakup the container into singletons then merge two items repeatedly until everything is merged together. USES A QUEUE.
Space
Sorting algorithms: Heapsort
Exploit the heap data structure:
Make a heap
While PQ:
Delete min
Fix
Repeat
Sorting algorithms:
Distribution Counting
Traversal Algorithms
Depth first (nose dive search)
Breadth first (layer by layer search)
Dijkstra’s
Bellman-Ford
Floyd-Warshall
01
02
03
04
05
Search Algorithms
Depth First Search (DFS)
Breadth First Search (BFS/BrFS)
Iterative Width (IW)
Uniform Cost Search
Heuristic Search (A*)
01
02
03
04
05
Minimum Spanning Tree (MST)
Algorithms
Prim’s Algorithm
Kruskal Algorithm
01
02
Q+A
Feedback form + sign ups
Feedback Form!