YSC2229: Introductory Data Structures and Algorithms
1. Course Syllabus
2. Software Prerequisites
3. OCaml Style Guide
1. Week 01: Introduction
2. Week 02: Working with Arrays
2.1. Arrays and Operations on Them
2.2. Insertion Sort on Arrays
2.3. Selection Sort
2.4. Exercises
3. Week 03: Complexity of Algorithms and Order Notation
4. Week 04: Divide-and-Conquer Algorithms
5. Week 05: Binary Heaps and Priority Queues
6. Week 06: Abstract Data Types
7. Midterm Project: Memory Allocation and Reclamation
8. Week 07: Hashing-Based Data Structures
9. Week 08: Searching in Strings
10. Week 09: Backtracking and Dynamic Programming
11. Week 10: Data Encoding and Compression
12. Week 11: Binary Search Trees
13. Week 12: Graph Algorithms
14. Week 13: Elements of Computational Geometry
15. Final Project: Vroomba Programming
YSC2229: Introductory Data Structures and Algorithms
Docs
»
2. Week 02: Working with Arrays
2. Week 02: Working with Arrays
ΒΆ
2.1. Arrays and Operations on Them
2.2. Insertion Sort on Arrays
2.2.1. Tracing Insertion Sort
2.2.2. Insertion Sort Invariants
2.2.3. Termination of Insertion Sort
2.3. Selection Sort
2.3.1. Tracing Selection Sort
2.3.2. Invariants of Selection Sort
2.3.3. Termination of Selection Sort
2.4. Exercises
2.4.1. Exercise 1
2.4.2. Exercise 2
2.4.3. Exercise 3
2.4.4. Exercise 4
2.4.5. Exercise 5