17. Θ(
g
(
n
)) = {
f
(
n
) : there exist positive constants
c
1,
c
2, and
n
0 such that 0 ≤
c
1
g
(
n
)
≤
f
(
n
) ≤
c
2
g
(
n
) for all
n
≥
n
0 }
18. Min-Heaps satisfy the heap property: A[Parent(i)] ³ A[i] for all nodes i > 1. F
19. For array of length
n
, all elements in range A[ën/2û + 1 .. n] are heaps. T
20. The tighter bound of the running time to build a max-heap from an unordered array
isn’t in linear time. F
21. The call to BuildHeap() takes O(
n
) time, Each of the
n
- 1 calls to Heapify() takes
O(lg
n
) time, Thus the total time taken by HeapSort() = O(
n
) + (
n
- 1) O(lg
n
)= O(
n
)
+ O(
n
lg
n
)= O(
n
lg
n
). T
22. Quick Sort is a dynamic programming algorithm. The array A[p..r] is
partitioned
into
two non-empty subarrays A[p..q] and A[q+1..r], All elements in A[p..q] are less than
all elements in A[q+1..r], the subarrays are recursively sorted by calls to quicksort.
F
23. Assume that we have a connected, undirected graph
G
= (
V, E
) with a weight
function
w
:
E
→R, and we wish to find a minimum spanning tree for
G
. Both
Kruskal and Prim algorithms use a dynamic programming approach to the problem.
F
24. A
cut
(
S, V
-
S
) of an undirected graph
G
= (
V
,
E
) is apartition of
E
. F
25. An edge is a
light edge
crossing a cut if itsweight is themaximum of any edge crossing
the cut. F
26. Kruskal's algorithm uses a disjoint-set data structure to maintain several disjointsets
of elements. T