Chapter 2 – The Fundamentals input output definiteness correctness finiteness generality Pseudocode Finding the largest element in a list Algorithm 1: Finding the maximum Element in a Finite Sequence {page 122 in Rosen} procedure max(a1, a2, …, an: distinct integers) max a1 // initialize max to the first element of the list for i 2 to n if max < ai then max ai return(max) // max is the largest element p. 130 # 17 Describe an algorithm that locates the first occurrence of the largest element in a finite list of integers where the integers are not necessarily distinct. procedure max(a1, a2, …, an: integers) max a1 {initialize max to the first element of the list} Search algorithms Algorithm 2 The Linear Search Algorithm Procedure linear search(x : int, a1, a2, ...,an: distinct int) { return the location of x in the list, or 0 if x is not on list} i1 while (i n and x ai) ii+1 if i n then location i else location 0 Is there a more efficient searching algorithm? Algorithm 3 The Binary Search Algorithm Procedure binary search( x: int, a1, a2, ...,an: increasing int) i 1 {left endpoint of search interval} j n {right endpoint of search interval} while i < j m (i+j)/2 if x > am then i m + 1 else j m if x = ai then location i else location 0 Sorting algorithms Bubble Sort Basic idea: 1. 2. 3. Structuring the Loops Algorithm 4 The Bubble Sort procedure bubblesort(a1, a2, … , an) for i 1 to n -1 { a1, a2, … , an is now in increasing order}