Lecture 3

Algorithms

3.1 Introduction & Notation

3.2 Examples

  1. Algorithm find_large which finds the largest number in the sequence s1,..,sn.

    Input:  A list of integers s = {s1,..,sn}, and the length n of the list
    Output: A number which is the largest in s.

      
          1.  procedure  find_large(s,n)
          2.     large := s1 
          3.       i :=  2 
          4.       while i £ n  do 
          5.        begin 
          6.             if si  > large then    // a larger value was found
          7.                 large := si
          8.             i := i + 1 ;
          9.        end 
         10.     return(large) 
         11.    end find_large
    

  2. Algorithm Div which calculate, for a given integer (n) and a positive integer (d),  the quotient (q) and remainder (r) where q and r ate integers.  Division is done by repeated subtraction, not by arithmetic division.

    Input:  n (an integer), and d (a positive integer)
    Output:  q and r (integers)

         1.procedure Div(n, d, q, r)
         2.  q := 0     r := n       // initialize q and r
         3.    while  r ³ d  do 
         4.           begin 
         5.              q := q + 1    r := r  -  d
         6.           end 
         7.    return(q)
         8.  end Div         // remainder can be found from variable "r"
    
    
    

  3. Algorithm is_even which tests whether a positive integer m is even

    Input:  A positive integer m
    Output:  true if m is even; false if m is odd

        1.  procedure  is_evern(m) 
        2.    if m mod 2 = 0  then return (true)
        3.    else  return (false)
        4.  end is_even
    

     

  4. Algorithm is_prime which tests whether a positive integer m is prime

    Input:  A positive integer m
    Output:  true if m is prime; false if m is not prime

        1.  procedure  is_prime(m) 
        2.    for  i := 2 to m-1 do  
        3.    if m mod i = 0  then return (false)
        3.      return (true)
        4.  end is_prime
    

 

3.3 The Euclidean Algorithm

 

Recursive Algorithms

A recursive procedure is a procedure that invokes itself.
A recursive algorithm is an algorithm that contains a recursive procedure .
Examples