slide1 n.
Download
Skip this Video
Download Presentation
CMSC 203, Section 0401 Discrete Structures Fall 2004 Matt Gaston mgasto1@cs.umbc

Loading in 2 Seconds...

play fullscreen
1 / 16

CMSC 203, Section 0401 Discrete Structures Fall 2004 Matt Gaston mgasto1@cs.umbc - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

CMSC 203, Section 0401 Discrete Structures Fall 2004 Matt Gaston mgasto1@cs.umbc.edu http://www.csee.umbc.edu/~mgasto1/203. Algorithms Ch. 2.1-2.3. Definition. Book definition: Algorithm : a finite set of precise instructions for performing a computation or for solving a problem

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CMSC 203, Section 0401 Discrete Structures Fall 2004 Matt Gaston mgasto1@cs.umbc' - stacy-armstrong


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
CMSC 203, Section 0401

Discrete Structures

Fall 2004

Matt Gaston

mgasto1@cs.umbc.edu

http://www.csee.umbc.edu/~mgasto1/203

slide2

Algorithms

Ch. 2.1-2.3

definition
Definition
  • 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.
algorithm features
Algorithm Features
  • Input
  • Output
  • Definiteness
  • Correctness
  • Finiteness
  • Effectiveness
  • Generality
linear search
Linear Search

procedurelinear search (x:integer, a1, a2, . . . , an: distinct integers)

i := 1

while (i  n and x  ai)

i := i + 1

ifi  n thenlocation := i

elselocation := 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?

binary search
Binary Search

procedurebinary search (x:integer, a1, a2, . . . , an: increasing integers)

i := 1

j := n

while (i  j)

begin

m :=  (i + j) / 2 

ifx  amtheni := m + 1

elsej := m

end

if x = aithen 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

growth of functions
Growth 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 > k.

example
Example
  • 7x2 = O(x3)
combinations of functions
Combinations 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))
big omega notation
Big-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 > k.

big theta notation
Big-Theta Notation
  • f(x) is of orderg(x)

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)).

bubble sort
Bubble Sort

procedurebubble sort (a1, a2, . . . , an)

for i := 1 ton – 1

for j := 1 ton – i

ifaj > aj+1then interchange aj and aj+1

{a1, a2, . . . , an is in increasing order }

insertion sort
Insertion Sort

procedureinsertion sort (a1, a2, . . . , an : real numbers with n  2)

for j := 2 ton

begin

i := 1

whileaj > ai

i := i + 1

m := aj

for k := 0 toj - i – 1

aj-k:= aj-k-1

ai:= m

end {a1, a2, . . . , an are sorted }

understanding complexity
Understanding Complexity
  • n!, 2n, n2, n log(n), n, log(n), 1
  • Tractable/Intractable
  • Solvable/Unsolvable – Halting Problem
  • Class P, Class NP
  • NP-Complete