--- title: 201 Algorithms and data structures --- # COSC201 - Algorithms and Data Structures ## 1 Lectures - [Merge sort - divide and conquer](content/notes/merge-sort-divide-and-conquer.md) - [Lecture 8 Merge sort 2](content/notes/lecture-8-merge-sort-2.md) - [Lecture 9 Stacks queues and heaps](content/notes/lecture-9-stacks-queues-and-heaps.md) - [Lecture 10 Heaps and heap sort](content/notes/lecture-10-heaps-and-heap-sort.md) ## 2 Notes ### 2.1 Algorithm Complexity - [Big-O](content/notes/big-o.md) - [Big theta](content/notes/big-theta.md) - [Induction](content/notes/induction.md) - [analysis of recursive algorithms](content/notes/analysis-of-recursive-algorithms.md) ### 2.2 Algorithms - [Minimal spending tree](content/notes/minimal-spending-tree.md) - [Union Find-Disjoint set](content/notes/union-find-disjoint-set.md) - ### 2.3 Fundamental Data structures - [Objects](content/notes/objects.md) - Stacks queues, List/arrays - [Union Find-Disjoint set](content/notes/union-find-disjoint-set.md) - Graphs and networks - Priority queue (heap) - Weighted - Unweighted - Trees (search and optimisation) - Maps (link between 'keys' and 'values') - Sets (Unstructured) (no repetition allowed) ## 3 Assignments [assignment 1](content/notes/assignment-1.md) ## 4 Information **Staff** Role | Name | Email | Location | Hours -----|------|-------|----------|-----| Lectures | Michael Albert | michael.albert@otago.ac.nz | owheo g.52 | na | Labs | Reuben Crimp | reuben.crimp@otago.ac.nz | owheo g.37a | na | **Resources** [blackboard](https://blackboard.otago.ac.nz/webapps/blackboard/execute/modulepage/view?course_id=_45042_1&cmp_tab_id=_508507_1&mode=view+) [intro to algorithms book](https://otago.hosted.exlibrisgroup.com/permalink/f/1ihp3dt/OTAGO_ALMA51297974690001891) **Assessment** - Internal - two asignments - end of week 5 10% - end of week 10 20% - labs total 10% - Exam - 60% **Course_plan** - Extension and refinement of Big-O notation for algorithmic analysis. - The union-find data structure (a case study) - Merge sort - Priority queues and heap sort - Search trees and balancing - Hashing and hash maps - Graphs and graph algorithms (shortest paths, minimal spanning trees) - String algorithms