Approaching Problems & Algorithm Complexity

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/44

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

45 Terms

1
New cards

Decomposing Problems

Breaking down a complex task into manageable parts that can be solved independently.

2
New cards

Transforming Problems

Converting a specific problem into a generic problem with a known solution.

3
New cards

Creating Traces

Manually working through the steps to solve the problem using specific data inputs to identify decisions and process steps that can be converted into a flowchart

4
New cards

Time Complexity

Measures how efficient an algorithm is based on the number of instructions a computer executes to get a result.

5
New cards

Complexity Analysis

Quantifies an algorithm's time and space usage in relation to the input size.

6
New cards

Worst-Case Time Complexity

The time taken in the worst possible input scenario.

7
New cards

Space Complexity

A metric that indicates how much memory an algorithm uses.

8
New cards

Asymptotic Analysis

Uses Big O notation to classify algorithms according to how their run time or space requirements grow as the input size grows.

9
New cards

Constant Time - O(1)

Algorithms where the execution time does not depend on the input size; they take the same time regardless.

10
New cards

Linear Time - O(n)

Algorithms where the execution time grows linearly with the size of the input; each element in the input increases the execution time proportionally.

11
New cards

Logarithmic Time - O(log n)

Algorithms where the execution time grows logarithmically with the input size, commonly found improving algorithms by reducing the amount of needed steps.

12
New cards

Quadratic Time - O(n^2)

Algorithms where the execution time grows quadratically with the size of the input, common in algorithms that perform actions for all pairs of elements.

13
New cards

Flowchart

A visual representation of a process, using different shapes to represent steps and decisions.

14
New cards

Recursion

A method of problem-solving where a function calls itself directly or indirectly.

15
New cards

Divide and Conquer

A problem-solving technique that involves breaking down a problem into smaller subproblems, solving each subproblem independently, and then combining the solutions to solve the original problem.

16
New cards

Tree

A data structure that consists of nodes where each node has a value and pointers to its children.

17
New cards

Binary Tree

A tree data structure where each node has at most two children, which are referred to as the left child and the right child.

18
New cards

Binary Search Tree

A sorted binary tree data structure, which ensures efficient search, insertion, and deletion operations.

19
New cards

Graph

A data structure with non-linear relationships between elements represented as nodes connected by edges.

20
New cards

Depth-First Search (DFS)

A searching algorithm that starts at the root node and explores each branch as far as possible before backtracking.

21
New cards

Decomposition

Breaking down a complex task into manageable parts that can be solved independently.

22
New cards

Recursive Decomposition

Finding a self-similar problem that's easier to solve, often leading to recursion.

23
New cards

Problem Transformation

Recognizing problem patterns and converting the specific problem into a generic one with a known solution.

24
New cards

Algorithm Design

Converting a specific problem into a generic problem with a known solution.

25
New cards

Finding the Oldest User Example

Minimum/maximum aggregation problem.

26
New cards

Creating Traces

Manually working through the steps to solve the problem using specific data inputs.

27
New cards

Purpose of Traces

Reveals decisions and process steps that can be converted into a flowchart.

28
New cards

Time Complexity

Measures how efficient an algorithm is based on the number of instructions a computer executes to get a result.

29
New cards

Lowest

Aim for algorithms with the possible complexity to minimize computation time and hardware resource use.

30
New cards

Complexity Analysis

Quantifies an algorithm's time and space requirements.

31
New cards

Complexity

Expressed in terms of the input, describing how the time/space grows as a function of the input.

32
New cards

Worst-Case Time Complexity

The time taken in the worst-case scenario.

33
New cards

Sub-problem Decomposition

Breaking a problem into smaller, manageable parts.

34
New cards

Recursion in Problem Solving

Finding easier, self-similar problems for recursive solutions.

35
New cards

Pattern Recognition in Algorithms

Converting a specific problem into a known generic one.

36
New cards

Minimum/Maximum Aggregation

Converting a problem of finding the oldest user into finding the maximum value in a list.

37
New cards

Manual Tracing Process

Detailing each step explicitly as if explaining to a robot.

38
New cards

Pattern Identification via Traces

Using manual processes to find generic patterns previously missed.

39
New cards

Importance of Complexity Analysis

Essential for determining when to choose a more efficient algorithm.

40
New cards

Quantifying Algorithm Efficiency

Time and space requirements relative to input size.

41
New cards

Understanding Worst-Case Scenarios

Analyzing performance under the most demanding conditions.

42
New cards

Measuring Algorithm Efficiency

An algorithm's efficiency based on executed instructions.

43
New cards

Problem Transformation

The process of turning a specific problem into a more general form that is already solved.

44
New cards

Recursion

The method of solving problems by repeating a process. Each step is a smaller version of the original problem.

45
New cards

Algorithm Performance

Helps programmers to choose the best algorithm based on time and space required.