2.2-1:
	n^3/1000 - 100n^2 - 100n + 3 = K(n^3)

2.2-2:
	1.	n <- length[A]
		for j <- 1 to n - 1
			do smallest <- j
			for i <- j + 1 to n
				do if A[i ] < A[smallest]
					then smallest <- i
				exchange A[ j ] <--> A[smallest]
	
	2.j-1
	3.afer run for the first n - 1 elements, the last one will be largest
	4.best-case=n^2 worst-case =n^2

2.2-3:
	best:O(1)
	average: O(n)
	worst: O(n)

2.2-4
	One can modify an algorithm to have a best-case running time
	by specializing it to handle a best-case input effciently
		
