Big Idea 4: Algorithms
What does a binary search algorithm do?
A method for finding a target value within a list that repeatedly divides the search interval in half. If the value of the search key is less than the item in the middle of the interval, the interval is narrowed to the lower half.
What does a linear search algorithm do?
A method for finding a target value within a list that sequentially checks each element of the list for the target value until a match is found or until all the elements have been searched.
What is an undecidable problem?
A problem in which no algorithm can be constructed that always leads to a correct yes-or-no answer.
What is an algorithm?
A self-contained sequence of actions to be performed that can perform calculation, data processing and automated reasoning tasks.
What is a heuristic?
A technique that may allow us to find an approximate solution when typical methods fail to find an exact solution.
What is a brute force algorithm?
An algorithm that tries or tests every possibility.
What two concepts define the efficiency of an algorithm?
Execution time and memory usage
True or False: Different algorithms can't be used to solve the same problem.
False.
True or False: If an algorithm is complex, it can't be efficient.
False.
How does one complete an empirical analysis of an algorithm?
Implementing the algorithm and running it on different inputs.
What is the terminology for what is entered into an algorithm?
Input
How can the language used in an algorithm affect it?
It changes the readability and clarity within the algorithm.
Can all problems be solved using an algorithm?
No, some problems require human elements.
What is the terminology for what is produced by an algorithm?
Output
How do you determine the efficiency of a program?
Reasoning formally or mathematically about the algorithm.
What are the three building blocks of algorithms?
Sequencing, selection, and iteration.
What is sequencing?
The application of each step of an algorithm in the order in which the statements are given.
What is algorithmic design?
The process of designing a solution strategy to fit a particular problem.
What is iteration?
The repetition of part of an algorithm until a condition is met or for a specified number of times.
Why do we use natural language and pseudocode with algorithms?
To describe algorithms so that humans can understand them.
What are algorithms used for?
To develop and express solutions to computational problems.
True or False: Algorithms can be combined to make new algorithms.
True.
Different _________ are better suited for expressing different algorithms.
languages
What makes an algortihm run faster or slower?
the length and precision of the functions used within the algorithm
If an algorithm runs in a reasonable time, that means that...
the number of steps the algorithm takes is less than or equal to a polynomial function (constant, linear, square, cube, etc.) of the size of the input.