Title: CMSC 203, Section 0401
1- CMSC 203, Section 0401
- Discrete Structures
- Fall 2004
- Matt Gaston
- mgasto1_at_cs.umbc.edu
- http//www.csee.umbc.edu/mgasto1/203
2 Algorithms Ch. 2.1-2.3
3Definition
- Book definition
- Algorithm a finite set of precise instructions
for performing a computation or for solving a
problem - Better definition (?)
- Algorithm An algorithm is a finite set of
unambiguous, executable instructions that directs
a terminating activity.
4Algorithm Features
- Input
- Output
- Definiteness
- Correctness
- Finiteness
- Effectiveness
- Generality
5Linear Search
procedure linear search (xinteger, a1, a2, . . .
, an distinct integers) i 1 while (i ? n and
x ? ai) i i 1 if i ? n then location i
else location 0
10 13 17 1 4 18 3 5 11 9 8 16 2 7 6
14 15 19 20 18 12
How many steps? Worse case? On average?
6Binary Search
procedure binary search (xinteger, a1, a2, . . .
, an increasing integers) i 1 j n while (i
? j) begin m ? (i j) / 2 ? if x ? am
then i m 1 else j m end if x ai then
location I else location 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20
7Growth of Functions
- Big-O Notation
- C and k are called witnesses
Let f and g be functions from the set of integers
to the set of integers or the set of real numbers
to the set of real numbers. We say that f(x) is
O(g(x)) if there are constants C and k such
that f(x) ? C g(x) whenever x gt k.
8Pictorial Big-O Notation
C g(x)
f(x)
g(x)
k
9Example
10Combinations of Functions
- f(x) anxn an-1xn-1 . . . a1x a0
- f(x) O(xn)
- (f1 f2)(x) O(max( g1(x), g2(x) ))
- (f1f2)(x) O(g1(x)g2(x))
11Big-Omega Notation
Let f and g be functions from the set of integers
to the set of integers or the set of real numbers
to the set of real numbers. We say that f(x) is
?(g(x)) if there are constants C and k such
that f(x) ? C g(x) whenever x gt k.
12Big-Theta Notation
Let f and g be functions from the set of integers
to the set of integers or the set of real numbers
to the set of real numbers. We say that f(x) is
?(g(x)) if f(x) is O(g(x)) and f(x) is ?(g(x)).
13Bubble Sort
procedure bubble sort (a1, a2, . . . , an) for i
1 to n 1 for j 1 to n i if aj gt
aj1 then interchange aj and aj1 a1, a2, . . .
, an is in increasing order
14Insertion Sort
procedure insertion sort (a1, a2, . . . , an
real numbers with n ? 2) for j 2 to n begin i
1 while aj gt ai i i 1 m aj
for k 0 to j - i 1 aj-k aj-k-1 ai
m end a1, a2, . . . , an are sorted
15Make Change!
16Understanding Complexity
- n!, 2n, n2, n log(n), n, log(n), 1
- Tractable/Intractable
- Solvable/Unsolvable Halting Problem
- Class P, Class NP
- NP-Complete