Skip to main content
Ctrl+K
Logo image
Logo image

IDATA 2302 — Algorithms and Data Structures

About This Course

  • Welcome!
  • Course Overview
  • Practicalities
  • Examination
  • Additional Resources

Modules

  • Foundations
    • 1. Computations
    • 2. Computer
    • 3. Correctness
    • 4. Efficiency
    • 5. Algorithm Analysis
    • 6. The Big-O Notation

Lab Sessions

  • Setup
  • Foundations

Code Examples

  • Edge List Pattern in Ruby
  • Adjacency List in JavaScript
  • Adjacency Matrix in C

Recaps

  • Math Recap
  • .rst

Recursion

Contents

  • Contents

Version: 0.6.1

Recursion#

This module focus on recursion, a key concept in Computer Science.

Contents#

  • 1. Procedure Calls
    • 1.1. Why Procedure Calls?
    • 1.2. How Does “Calling” Work?
    • 1.3. The Call Stack
    • 1.4. How Much Does “Calling” Cost?
  • 2. Recursion
    • 2.1. What is Recursion?
    • 2.2. Recursive Data Types
    • 2.3. Recursive Algorithms
  • 3. Linked Lists
    • 3.1. Linked Lists
    • 3.2. Other Flavors of List
    • 3.3. Iterators
    • 3.4. Linked Lists vs. Dynamic Arrays
  • 4. Quick Sort
    • 4.1. Quick Sort
    • 4.2. Efficiency
  • 5. Merge Sort
    • 5.1. Merge Sort
    • 5.2. Efficiency
  • 6. Sorting Without Comparing
    • 6.1. The Limit of Sorting by Comparing
    • 6.2. Counting Sort
    • 6.3. Radix Sort
    • 6.4. Sorting Algorithms, Overview
Contents
  • Contents

By NTNU

© Copyright 2021, NTNU.