Conceptual Questions

Conceptual Questions

1 .
Explain the difference between algorithms and programs.
2 .
Explain the difference between data structures and abstract data types.
3 .
Explain the relationship between data representation, data structures, and algorithms.
4 .
What is the relationship between search algorithms and the searching problem?
5 .
What is the relationship between search algorithms and the autocomplete feature?
6 .
Why is algorithmic correctness difficult to determine?
7 .
What are some limitations of experimental analysis?
8 .
What are some benefits of experimental analysis over asymptotic analysis?
9 .
Why is a 1-element list the best-case situation for sequential search?
10 .
If phone numbers are ten digits long and can contain digits from zero through nine, what is the total number of potential phone numbers?
11 .
Why might we prefer a sub-optimal greedy algorithm over a correct brute-force algorithm?
12 .
What’s problematic about the statement, "municipal broadband planning reduces to Kruskal’s algorithm"?
13 .
Describe the relationship between the pivot element and the left and right sublists after the first partition in quicksort.
14 .
The runtime of Kruskal’s algorithm is in O(|E| log |E|) with respect to |E|, the number of edges. What primarily contributes to this linearithmic order of growth?
15 .
Both Prim’s algorithm and Dijkstra’s algorithm are greedy algorithms that organize vertices in a priority queue data structure. What is the difference between the ordering of vertices in the priority queue for Prim’s algorithm and Dijkstra’s algorithm?
16 .
What is the relationship between models of computation and algorithms?
17 .
What is the common difficulty preventing us from designing an efficient algorithm for solving NP-complete problems?
18 .
What are the consequences of P = NP?