Chapter 2 The Fundamentals: Algorithms, the Integers, and Matrices Algorithm: specifying a sequence of steps used to solve a problem. Computational complexity of an algorithm: what are the computer resources needed to use this algorithm to solve a problem of a specified size? Integers: properties of integers, division of integers, algorithms involving integers. Matrices: basic material about matrices, matrix arithmetic.
2.1 Algorithms Definition 1. An algorithm is a finite sequence of precise instructions for performing a computation or for solving a problem. Example 1 Describe an algorithm for finding the maximum (largest) value in a finite sequence of integers. Solution Set the temporary maximum equal to the first integer in the sequence. Compare the next integer in the sequence to the temporary maximum, and set the larger one to be temporary maximum. Repeat the previous step if there are more integers in the sequence. Stop when there are no integers left in the sequence. The temporary maximum at this point is the maximum in the sequence. Instead of using a particular computer language, we use a form of pseudocode.
The properties of algorithms: Input Output Definiteness Correctness Finiteness Effectiveness Generality
Example 2 Describe an algorithm for finding an element x in a list of distinct elements
2.2 Complexity of Algorithms Assume that both algorithms A and B solve the problem P. Which one is better? Time complexity: the time required to solve a problem of a specified size. Space complexity: the computer memory required to solve a problem of a specified size. The time complexity is expressed in terms of the number of operations used by the algorithm. Worst case analysis: the largest number of operations needed to solve the given problem using this algorithm. Average case analysis: the average number of operations used to solve the problem over all inputs.
Example 3 Analyze the time complexities of Algorithm 1 and 2 Number of operations 1 n 2(n-1) 3n-1 1 2(n+1) n 2 3n+5
Number of operations = 4 log n+4 1 2 Number of operations = 4 log n+4 2
For finding x in a list of n elements, we have two algorithms Which use Which one is better? A constant factor does not influence the running time so much. Therefore, 3n+5 grows faster than when n becomes larger. Usually, we say that 3n+5 is O(n) and say that is O( ).
Running time for a problem with size Time necessary operations Orders of Growth Running time for a problem with size Running Time necessary operations Operation Per second instant 1 second 11.5 days Never end days Instant Using silicon computer, no matter how fast CPU will be you can never solve the problem whose running time is exponential !!!
Asymptotic Notations: O-notation Definition 2.1 A function f(n) is said to be O(g(n)) if there exist some constant N
Example 3 Prove 2n+1=O(n) Example 5 List the following function in O-notation in increasing order:
2.2 The Integers and Division We discuss the properties of integers which belongs to the branch of Mathematics called number theory. b is a multiple of a a is a factor of b Example 1 Determine whether 3|7 and whether 3|12. Solution: It follows that 3|7 and 3|12.
Basic properties of divisibility of integers Theorem 1. Let a, b, and c be integers. Then If a|b and a|c, then a|(b+c). If a|b, then a|bc for all integers c. If a|b and b|c, then a|c. Proof There are s and t such that b=as and c=at. Therefore, b+c=a(s+t). There is s such that b=as. Therefore, bc=a(sc) There are s and t such that b=as and c=bt, therefore, c=a(st)
Definition 2. A positive integer p greater than 1 is called prime if the only positive factors of p are 1 and p. A positive integer that is greater than 1 and is not prime is called composite. Example 2. Is 7 a prime? The primes less than 100 are 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 and 97. Theorem 2. Every positive integer can be written uniquely as the uniquely as the product of primes in order of increasing size.
divisor dividend quotient remainder Example 4 What are the quotient and remainder when 101 is divided by 11? Solution: We have quotient remainder
Definition 3. Let a and b be integers Definition 3. Let a and b be integers. The largest integer d such that d|a and d|b is called the greatest common divisor of a and b, denoted by gcd(a,b). Example 5 What is gcd(24,36) and gcd(17,22)? Definition 4. The integers a and b are relatively prime if gcd(a,b)=1. Definition 5. The least common multiple of the positive integers a and b is the smallest positive integer that is divisible by both a and b, denoted by lcm(a,b).
Definition 6. Let a be an integer and m be a positive integer Definition 6. Let a be an integer and m be a positive integer. We denoted by a mod m the remainder when a is divided by m. Example 7 17 mod 5 = 2, -133 mod 9=2, and 2001 mod 101 = 82.
2.4 Integers and Algorithms The Euclidean Algorithm: Find the greatest common divisor of two positive integers Lemma 1 Let a=bq+r, where a,b,q, and r are integers. Then gcd(a,b)=gcd(b,r).
Example 1 Find the greatest common divisor of 414 and 662 using the Euclidean Algorithm. Solution: Hence, gcd(414,662)=2, since 2 is the last nonzero remainder.
Representation of integers
Algorithm for integer operations Addition of a and b Example 5 1 1 1 0 1 0 1 1 1 1 0 0 1
Multiplication of a and b 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 b a shifts 0 place a shifts 1 place a shifts 3 places
2.6 Matrices j column i row i row j column
Algorithms for matrix multiplication
Transposes and powers of matrices
Zero-One Matrices A matrix with entries that are either 0 or 1 is called a zero-one matrix.
. .