Different type of Data Strcture
Analysis of Algorithms Rate of growth: O(n), o(n), Ω(n) ω(n) Θ(n) Time vs. Space Stacks & Queues Arrays vs. Linked Lists Binary Trees Binary Tree Manipulation Ordered Binary Trees / Binary Search Trees Heaps Priority Queues Sorting Insertion Sort / Selection Sort Merge Sort / Quicksort Heapsort Bucket Sort Radix Sort Hash Tables Hash Functions Open Hashing Closed Hashing B Trees Graph Algorithms Dijkstra’s Algorithm Prim’s Algorithm Kruskal’s Algorithm Depth First Search Connected Components Maximum Flow Dynamic Programming AVL Trees (Time permitting) NP-Completeness (Time permitting) Binomial Heaps (Time permitting)
Analyze the O() and Theta() running times of both imperative and recursive algrithms Write larger and more complex Java applications Understand all of the following algorithms, and implement them in Java:
Stacks/Queues/Lists Binary Search Trees General Trees Heaps (Priority Queues) Hash Tables B-Trees Sorting Algorithms Insertion sort Quicksort Mergesort Bucket Sort Radix Sort Graph Algorithms Dijkstra's Algorithm Prim's Algorithm DFS/BFS Topoligical Sort Connected Components Understand the basics of dynamic programming, and write a memoized version of an algorithm