CS502 VU Assignment No. 2 Spring 2012 Solution

Question 1:

Consider sorting n numbers stored in array A by first finding the smallest element of A and exchanging it with the element in A[1]. Then find the second smallest element of A, and exchange it with A[2]. Continue in this manner for the first n – 1 elements of A. Write pseudo code for this algorithm, which is known as selection sort. What loop invariant does this algorithm maintain? Why does it need to run for only the first n – 1 element, rather than for all n elements? Give the best-case and worst-case running times of selection sort in Θ-notation.

 Answer of no#1:

 The Selection-sort (A)

For i ← 1 to length [A]

Do  min-value ← A [i]

Min-index = i

For j = i +1to length [A]

Do if A[j] ≤ min-value

Min-value = A [j]

Min-index = j

A[i] ←→ A [min-index]


In this session the worst –case running time of SELECTION-Sort is Ө (n2)

 Question 2:

We can extend our notation to the case of two parameters n and m that can go to infinity independently at different rates. For a given function g(n, m), we denote by O(g(n, m)) the set of functions

O(g(n, m)) = {f(n, m): there exist positive constants c, n0, and m0 such that 0 ≤ f(n, m) ≤ cg(n, m) for all n n0 and m m0}.Give corresponding definitions for Ω(g(n, m)) and Θ(g(n, m)).

Answer of no#2:

Ω(g(n,m)) = { f (n,m) : there exist positive constants c, n0 , and m0 such that 0 ≤ cg(n,m) ≤ f (n,m) for all n ≥ n0 and m ≥ m0 }.

Ө(g(n,m)) ={ ƒ(n,m) : there exist positive constants c1,c2 n, and m0 such that c1g(n,m) ≤ ƒ(n.m) ≤ c2g(n,m) for all n≥ n0 and m ≥ m0 }.