Download presentation

Presentation is loading. Please wait.

Published byNoe Witherington Modified over 2 years ago

1

2
Discrete Mathematics University of Jazeera College of Information Technology & Design Khulood Ghazal Algorithms

3
An algorithm : is a finite set of precise instructions for performing a computation or for solving a problem. OR it is a sequence of steps leads to the desire answer. How can we describe an algorithm ? 1. English language. 2.Pseudocode. 3.Computer language.

4
Example 1: Describe an algorithm for finding the maximum (largest) value in a finite sequence of integers. Solution :( using English language ). 1.Set the temporary maximum equal to the first integer in the sequence. (The temporary maximum will be the largest integer examined at any stage of the procedure.) 2.Compare the next integer in the sequence to the temporary maximum, and if it is larger than the temporary maximum, set the temporary maximum equal to this integer. 3.Repeat the previous step if there are more integers in the sequence. 4.Stop when there are no integers left in the sequence. The temporary maximum at this point is the largest integer in the sequence. Algorithms

5
The pseudocode for Finding the Maximum Element in a Finite Sequence. n is the number of integers in the list. procedure max ( a 1,a 2,…,a n : integers ) max := a 1 for i := 2 to n if a i > max then max := a i return max { max is the largest element } Algorithms if a i > max =F And i<=n Example : list a= {6 4 10 } max=6 n = 3 i=2 4>6 (F) i=3 10>6 (T) then max=10 i=4 return 10

6
Properties of Algorithms Properties that all algorithms generally share are: Input : An algorithm has input values from a specified set. Output : From each set of input values an algorithm produces output values from a specified set. The output values are the solution to the problem. Definiteness : The steps of the algorithm must be defined precisely. Correctness: An algorithm should produce the correct output values for each set of input values. Finiteness : An algorithm should produce the desired output after a finite (but perhaps large) number of steps for any input in the set. Effectiveness: It must be possible to perform each step of an algorithm exactly and in a finite amount of time. Generality: The function should be applicable for all problems of the desired form, not just for a particular set of input values.

7
Searching Algorithms Problem of searching an ordered list. Given a list L of n elements that are sorted into a definite order (e.g., numeric, alphabetical), And given a particular element x, Determine whether x appears in the list, and if so, return its index (position) in the list.

8
Searching Algorithms Search algorithm #1: Linear Search Basic idea : The algorithm begins by comparing x and a 1.when x = a 1 the solution is the location of a 1 (namely 1). when x a 1,compare x with a 2,if x= a 2,the solution is the location of a 2 (namely 2 ). When x a 2,compare x with a 3. continue this process, comparing x successively with each term of the list until a match is found,where the solution is the location of that term, unless no match occurs, the solution is 0.

9
Linear Search The pseudocode for the linear search algorithm n is the number of integers in the list. procedure linear search (x: integer, a 1, a 2, …, a n : distinct integers) i := 1 while (i n x a i ) i := i + 1 End if i n then location := i else location := 0 return location {index or 0 if not found} Example : list a={ 3 6 7 8} x=7 n=4 i=1 1 4 7 3 (T ^ T=T) i=2 2 4 7 6 (T ^ T=T) i=3 3 4 7 7 (T ^ F=F) 3 4 then location:=3 return 3 (index of 7)

10
Search algorithm #2: Binary Search Basic idea: On each step, look at the middle element of the remaining list to eliminate half of it.

11
Search algorithm #2: Binary Search Example : To search for 19 in the list. 1 2 3 5 6 7 8 10 12 13 15 16 18 19 20 22. First split this list, which has 16 terms into two smaller list with eight term each; namely : 1 2 3 5 6 7 8 10 12 13 15 16 18 19 20 22 Then compare 19 and the largest term in the first list, since 10<19,the search for 19 can be restricted to the list containing the numbers(12 13…….22 -9 th to 16 th terms ) next split this list into two smaller lists of four terms each,namely : 12 13 15 16 18 19 20 22 Since 16<19 the search restricted to the second of these lists(13 th to 16 th terms). The list 18 19 20 22 is split into two lists, namely : 18 19 20 22 Since 19 not <19 the search restricted to the first list (18 19_13 th and 14 th terms ) Next this list is split into two lists of one term each: 18 19 Since 18<19 the search restricted to the second list,the list containing 19 (14 th term of the list) and 19 is located as 14 th term of the original list.

12
Search algorithm #2: Binary Search The pseudocode for the binary search algorithm n is the number of integers in the list. procedure binary search(x:integer, a 1, a 2, …, a n : distinct integers) i := 1 {left endpoint of search interval} j := n {right endpoint of search interval} while i 1 item} m := (i + j ) /2 {midpoint} if x > a m then i := m+1 else j := m end if x = a i then location := i else location := 0 return location

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google