• IDSA
  • Course Outline
    • Description
    • Details
    • Lecturer
    • Timetable
    • Learning Management System
    • Communication and Consultations
    • Textbook
    • Other Resources
    • Grading
    • Tentative Schedule
    • Satisfactory Performance
    • Academic Integrity
  • 1 Data Structures & Algorithms
    • 1.1 Analysis of Algorithms
    • 1.2 Best, Worst or Average?
    • 1.3 When do we actually care?
    • 1.4 Beyond Asymptotics: When Constants Still Matter
    • 1.5 Abstract Data Types
    • 1.6 Conclusion
    • 1.7 TODO
  • 2 C++ Revision
    • 2.1 Introduction
    • 2.2 Compilation
      • 2.2.1 Command Line
      • 2.2.2 Make
      • 2.2.3 Integrated Development Environments (IDEs)
    • 2.3 Hello World!
    • 2.4 Data Types
    • 2.5 Strings
    • 2.6 Reading input from stdin
    • 2.7 Vectors
    • 2.8 Branching (If Statements)
    • 2.9 Loops
      • 2.9.1 While Loops
      • 2.9.2 Do Loops
      • 2.9.3 For Loops
    • 2.10 Pointers
      • 2.10.1 Basics
      • 2.10.2 Initialisation & Null Pointers
    • 2.11 References
    • 2.12 Classes
    • 2.13 Arrays
    • 2.14 Static & Dynamic Allocation
    • 2.15 Recursion
    • 2.16 Debugging
    • 2.17 Setting up your environment
      • 2.17.1 Create your account
      • 2.17.2 Download the installer
      • 2.17.3 Linux
      • 2.17.4 Windows/MacOS
      • 2.17.5 Installation
  • 3 Searching and Sorting
    • 3.1 Introduction
    • 3.2 Searching Algorithms
      • 3.2.1 Linear Search
      • 3.2.2 Binary Search
      • 3.2.3 Linear vs Binary Search
    • 3.3 Sorting Algorithms
      • 3.3.1 Insertion Sort
      • 3.3.2 Selection Sort
      • 3.3.3 Bubble Sort
      • 3.3.4 Summary
    • 3.4 Lab
  • Published with bookdown

Introduction to Data Structures & Algorithms

Introduction to Data Structures & Algorithms

COMS1017A & COMS1021A

Prof. Richard Klein

Semester 2, 2025
[Updated: 2025-07-28]