Algorithms & Data Structures

Limited access

Upgrade to access all content for this subject

Selected questions
Theme Icon

Mathematical Foundations

The use of rigorous mathematics distinguishes the study of algorithms and data structures from that of programming in general. This theme explores mathematical topics typically used in computer science. Apply knowledge of logic and proofs to ensure guarantees of efficiency and accuracy in code. Design algorithms involving recursive expressions in their analysis and utilize set and graph theories to formulate an algorithm and its goals. Finally, apply results of number theory, probability and statistics, and linear algebra to solve certain algorithmic challenges.

CompletionAccuracy

Accuracy is based on your most recent attempt.

Status

Your status is based on your weighted accuracy which accounts for the difficulty of the questions.

Your weighted accuracy is based on your most recent attempts compared to everyone else’s first attempts.

Re-answering questions correctly will improve your weighted average status.

Basic Logic

0 of 7
0%
Get Started

Propositional Logic

0 of 2
0%
Get Started

Logical Connectives

0 of 6
0%
Get Started

Truth Tables

0 of 5
0%
Get Started

Inference Rules

0 of 3
0%
Get Started

Abstract

0 of 5
0%
Get Started

Sets

0 of 4
0%
Get Started

Relations

0 of 4
0%
Get Started

Graphs

0 of 2
0%
Get Started

Statistics

0 of 6
0%
Get Started

Counting

0 of 1
0%
Get Started

Geometric Distributions

0 of 5
0%
Get Started

Matricies

0 of 3
0%
Get Started

Matrix Operations

0 of 3
0%
Get Started

Vectors

0 of 7
0%
Get Started

Vector Properties

0 of 3
0%
Get Started

Vector Operations

0 of 7
0%
Get Started

Proof Techniques

0 of 7
0%
Get Started

Induction

0 of 5
0%
Get Started

Recursive definitions

0 of 2
0%
Get Started
Theme Icon

Introduction to Algorithms

The use of rigorous mathematics distinguishes the study of algorithms and data structures from that of programming in general. This theme explores mathematical topics typically used in computer science. Apply knowledge of logic and proofs to ensure guarantees of efficiency and accuracy in code. Design algorithms involving recursive expressions in their analysis and utilize set and graph theories to formulate an algorithm and its goals. Finally, apply results of number theory, probability and statistics, and linear algebra to solve certain algorithmic challenges.

CompletionAccuracy

Accuracy is based on your most recent attempt.

Status

Your status is based on your weighted accuracy which accounts for the difficulty of the questions.

Your weighted accuracy is based on your most recent attempts compared to everyone else’s first attempts.

Re-answering questions correctly will improve your weighted average status.

Programming Concepts

0 of 39
0%
Get Started

Primitive Data Types

0 of 16
0%
Get Started

Loops

0 of 11
0%
Get Started

Conditionals

0 of 10
0%
Get Started

Arrays

0 of 11
0%
Get Started

Static Methods

0 of 3
0%
Get Started

Recursion

0 of 4
0%
Get Started

API's

0 of 10
0%
Get Started

Strings

0 of 16
0%
Get Started

Binary Search

0 of 2
0%
Get Started

Binary Logic

0 of 4
0%
Get Started

Data Representations

0 of 7
0%
Get Started

Data Abstraction

0 of 31
0%
Get Started

Objects

0 of 14
0%
Get Started

Abstract Data Types

0 of 20
0%
Get Started

Classes

0 of 16
0%
Get Started

Algorithm Design and Analysis

0 of 40
0%
Get Started

Notation Methods

0 of 5
0%
Get Started

Visualizing Functions

0 of 1
0%
Get Started

Running Time

0 of 27
0%
Get Started

Memory Usage and Allocation

0 of 6
0%
Get Started

Dynamic Programming

0 of 11
0%
Get Started

Greedy Algorithms

0 of 3
0%
Get Started

Examples and Applications

0 of 15
0%
Get Started

The maximum subarray problem

0 of 2
0%
Get Started

Strassen's algorithm

0 of 3
0%
Get Started

Solving recurrences

0 of 5
0%
Get Started
Theme Icon

Data Structures

In any programming scenario, it is important to organize data in such a way so as to make it efficient to use. Learn the basic methods of organizing data with array, stacks, queues, and lists. Explore the creation and application of hash tables and various methods of constructing data trees.

CompletionAccuracy

Accuracy is based on your most recent attempt.

Status

Your status is based on your weighted accuracy which accounts for the difficulty of the questions.

Your weighted accuracy is based on your most recent attempts compared to everyone else’s first attempts.

Re-answering questions correctly will improve your weighted average status.

Basic Data Structures

0 of 17
0%
Get Started

Arrays

0 of 6
0%
Get Started

Stacks and Queues

0 of 7
0%
Get Started

Linked Lists

0 of 11
0%
Get Started

Pointers and Objects

0 of 7
0%
Get Started

Noted Trees

0 of 1
0%
Get Started

References

0 of 1
0%
Get Started

Hash Tables

0 of 6
0%
Get Started

Direct Address Tables

0 of 5
0%
Get Started

Hash Functions

0 of 5
0%
Get Started

Open Addressing

0 of 5
0%
Get Started

Augmenting Data Structures

0 of 4
0%
Get Started
Theme Icon

Sorting

In many algorithms, the first step is to sort the data. Learn the many different techniques that have been applied to the problem. Review fundamental methods such as bubble sort, insertion sort, and selection sort. Practice optimal strategies, including merge sort, quicksort and heapsort. Discover how certain classes of input can be sorted in linear time using counting sort, radix sort, and bucket sort.

CompletionAccuracy

Accuracy is based on your most recent attempt.

Status

Your status is based on your weighted accuracy which accounts for the difficulty of the questions.

Your weighted accuracy is based on your most recent attempts compared to everyone else’s first attempts.

Re-answering questions correctly will improve your weighted average status.

Basic Sorts

0 of 5
0%
Get Started

Selection Sort

0 of 1
0%
Get Started

Insertion Sort

0 of 1
0%
Get Started

Bubblesort

0 of 3
0%
Get Started
Theme Icon

Searching

In most IT applications, searching for data quickly is the main concern. This theme covers the basic techniques for searching that every programmer should know. Learn the basics about symbol tables, and invent techniques to remove duplicates and keep track of statistics. Explore how to quickly search through a sorted list using binary search. Review techniques for keeping binary search trees balanced after adding and removing data. Analyze how to achieve constant-time lookups using hash tables.

CompletionAccuracy

Accuracy is based on your most recent attempt.

Status

Your status is based on your weighted accuracy which accounts for the difficulty of the questions.

Your weighted accuracy is based on your most recent attempts compared to everyone else’s first attempts.

Re-answering questions correctly will improve your weighted average status.

Binary Search

0 of 1
0%
Get Started