Algorithm Fundamentals
Linear (1D) Data Structures
Hash Tables & Other Collections
Trees & Graphs
Searching, Sorting & Big O
100

This notation describes the worst-case performance of an algorithm

What is Big O?

100

This ADT stores ordered, mutable collections

What is a list?

100

This ADT is often implemented with a hash table as the underlying data structure

What is a dictionary?

100

This tree structure has at most two children per node

What is a binary tree?

100

This search algorithm splits the list in half each time

What is binary search?

200

This characteristic ensures an algorithm solves the problem using reasonable resources 

What is feasibility?

200

This ADT follows First In, First Out (FIFO)

What is a queue?

200

Average time complexity for searching a hash table

What is constant O(1)?

200

These are two common ways to represent graphs in memory

What are adjacency lists and adjacency matrices?

200

This iterative sorting algorithm repeatedly selects the smallest remaining element

What is selection sort?

300

This type of algorithm makes the best choice at each step without revisiting decisions

What is a greedy algorithm?

300

This ADT removes items in the reverse order they were added

What is a stack?

300

This issue occurs when two keys hash to the same index

What is a collision?

300

This traversal method uses a stack or recursion

What is depth-first search?

300

This sorting algorithm is stable and has a time complexity of O(n log n)

What is Merge Sort?

400

The time complexity of a binary search

What is logarithmic O(log n)?

400

This linear data structure consists of nodes with pointers to next and previous nodes 

What is a doubly linked list?

400

This ADT stores unique, unordered elements

What is a set?

400

This algorithm finds the shortest path in a graph and works with negative weights

What is Bellman-Ford?

400

The worst-case time complexity for Quicksort

What is quadratic O(n2)?

500

A problem solving technique that splits a problem into smaller subproblems, computes and stores solutions to subproblems in memory, and then uses the stored solutions to solve the larger problem

What is dynamic programming?

500

This operation removes the top item from a stack

What is pop()?

500

This strategy handles a collision by starting at the key's mapped bucket, and then searches subsequent buckets until an empty one is found

What is linear probing?

500

This data structure is best for implementing a priority queue

What is a heap?

500

#The time complexity of the following code block: for i in range(n):    for j in range(n):

What is quadratic O(n²)?