Algorithms

(NE-ALGO.AE1)
Lessons
Lab
TestPrep
AI Tutor (Add-on)
Get A Free Trial

Skills You’ll Get

1

Algorithm Analysis

  • Experimental Studies
  • The Seven Functions Used in This Course
  • Asymptotic Analysis
  • Simple Justification Techniques
  • Exercises
2

Recursion

  • Illustrative Examples
  • Analyzing Recursive Algorithms
  • Recursion Run Amok
  • Further Examples of Recursion
  • Designing Recursive Algorithms
  • Eliminating Tail Recursion
  • Exercises
3

Array-Based Sequences

  • Python's Sequence Types
  • Low-Level Arrays
  • Dynamic Arrays and Amortization
  • Efficiency of Python's Sequence Types
  • Using Array-Based Sequences
  • Multidimensional Data Sets
  • Exercises
4

Stacks, Queues, and Deques

  • Stacks
  • Queues
  • Double-Ended Queues
  • Exercises
5

Linked Lists

  • Singly Linked Lists
  • Circularly Linked Lists
  • Doubly Linked Lists
  • The Positional List ADT
  • Sorting a Positional List
  • Case Study: Maintaining Access Frequencies
  • Link-Based vs. Array-Based Sequences
  • Exercises
6

Trees

  • General Trees
  • Binary Trees
  • Implementing Trees
  • Tree Traversal Algorithms
  • Case Study: An Expression Tree
  • Exercises
7

Priority Queues

  • The Priority Queue Abstract Data Type
  • Implementing a Priority Queue
  • Heaps
  • Sorting with a Priority Queue
  • Adaptable Priority Queues
  • Exercises
8

Maps, Hash Tables, and Skip Lists

  • Maps and Dictionaries
  • Hash Tables
  • Sorted Maps
  • Skip Lists
  • Sets, Multisets, and Multimaps
  • Exercises
9

Search Trees

  • Binary Search Trees
  • Balanced Search Trees
  • AVL Trees
  • Splay Trees
  • (2,4) Trees
  • Red-Black Trees
  • Exercises
10

Sorting and Selection

  • Why Study Sorting Algorithms?
  • Merge-Sort
  • Quick-Sort
  • Studying Sorting through an Algorithmic Lens
  • Comparing Sorting Algorithms
  • Python's Built-In Sorting Functions
  • Selection
  • Exercises
11

Graph Algorithms

  • Graphs
  • Data Structures for Graphs
  • Graph Traversals
  • Transitive Closure
  • Directed Acyclic Graphs
  • Shortest Paths
  • Minimum Spanning Trees
  • Exercises
12

Basic Network Algorithms

  • Network Terminology
  • Network Representations
  • Traversals
  • Strongly Connected Components
  • Finding Paths
  • Transitivity
  • Shortest Path Modifications
  • Summary
  • Exercises
13

More Network Algorithms

  • Topological Sorting
  • Cycle Detection
  • Map Coloring
  • Maximal Flow
  • Network Cloning
  • Cliques
  • Community Detection
  • Eulerian Paths and Cycles
  • Summary
  • Exercises
14

Complexity Theory

  • Notation
  • Complexity Classes
  • Reductions
  • 3SAT
  • Bipartite Matching
  • NP-Hardness
  • Detection, Reporting, and Optimization Problems
  • Detection ≤p Reporting
  • Reporting ≤p Optimization
  • Reporting ≤p Detection
  • Optimization ≤p Reporting
  • Approximate Optimization
  • NP-Complete Problems
  • Summary
  • Exercises

1

Recursion

  • Calculating the Product of Two Positive Integers
  • Finding the Minimum Element
2

Array-Based Sequences

  • Using the getsizeof Function
  • Implementing a Dynamic Array
  • Adding Elements to a List
  • Using the extend Method
  • Removing Elements from a List
  • Constructing the Caesar Cipher Algorithm
3

Stacks, Queues, and Deques

  • Using Stack Abstract Data Type Method
4

Linked Lists

  • Implementing a Stack
  • Implementing a Queue
  • Implementing a Queue with a Circular Linked List
  • Implementing a Deque with a Doubly Linked List
5

Maps, Hash Tables, and Skip Lists

  • Adding Elements to a Set
  • Performing Set Operations
6

Sorting and Selection

  • Using a Sorting Function
  • Using the len() Built-In Function
7

Basic Network Algorithms

  • Understanding Network Terminology
8

More Network Algorithms

  • Using the Brute Force Approach

Related Courses

All Courses
scroll to top