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

Any questions?
Check out the FAQs

Still have unanswered questions and need to get in touch?

Contact Us Now

Related Courses

All Courses
scroll to top