Sequential Search slides Searching Searching Information retrieval is

  • Slides: 13
Download presentation
Sequential Search slides

Sequential Search slides

Searching • Searching : – Information retrieval is one of the most important application

Searching • Searching : – Information retrieval is one of the most important application of computers. – EG: Looking for a Name by giving the telephone number. – We give one piece of information (KEY) and we are asked to find a record that contains other information associated with the key

Searching • Searching for the keys that locate records is the most time consuming

Searching • Searching for the keys that locate records is the most time consuming action in a program • Two Types of Searching are there, 1) external searching Searching in external storage devices (Disk, Tapes etc. . ) 2) internal searching Searching within the computer memory

Searching • Sequential Search : – Start at the first piece of data and

Searching • Sequential Search : – Start at the first piece of data and look at it and if it no then keep going until you find what you are looking for or until you have reached the last. – EG : – Analysis : – When to Use?

Sequential search • Find the marks of the students from the Data structures and

Sequential search • Find the marks of the students from the Data structures and algorithms course using an array. ( Key - ID) array name is ‘ a ‘ // create A R R A Y ID 456 60 80 For ( I =0; I < size; I++) { if a[I]. id == ‘ 123’ cout << a[I]. id<<a[I]. mark 1; found = true } if (found !=true) cout << “Not in the List”

Sequential Search Algorithm 2: cin >>target; found = 0; I =0; while(I<n) &&(found==0) if

Sequential Search Algorithm 2: cin >>target; found = 0; I =0; while(I<n) &&(found==0) if (array[I]==target) found =1; Prev Alg: Depends on n But this one depends not only on n but also the position of the target

Sequential Search • Two Kinds of result 1) Successful 2) Un. Successful Best Case

Sequential Search • Two Kinds of result 1) Successful 2) Un. Successful Best Case - 1 st element O(1) (456) Worst Case - nth element O(n) (last)

Sequential search 1)It is useful for limited sized data sets as it is simple

Sequential search 1)It is useful for limited sized data sets as it is simple and does not require data to be structured in any way 2)when the data to be searched is constantly changing Dis : time consuming (large list) Any there other suitable data structures? This algorithm is well suited for implementation with linked list - follow ‘next’ pointer until we find or until we have reached the last adv: addition/deletion is easy

Binary Search • How it works? • Binary - two. List is broken down

Binary Search • How it works? • Binary - two. List is broken down to two parts and searched • working : Compare the target with the one in the center of the list and then restrict our attention to only the first or second half depending on whether the target comes before or after the central one. ( we reduce the length to be searched by half)

Binary Search • Rule - numbers must be in sorted order • Steps :

Binary Search • Rule - numbers must be in sorted order • Steps : 1. L = Low ( first index) 2. H = High (last index) 3. M = Mid ( ( l + h )/ 2 ) • 1. mark l & h • 2. Find Mid

Binary search 3. Check whether mid = x if so return index 4. If

Binary search 3. Check whether mid = x if so return index 4. If not , check whether x is > then bring low to mid +1 and carry on the same process 5. If < then bring high to mid-1 and carry on the same process 6. Until you find the value or if low and high cross each other

Binary search EG : 10 20 30 40 50 60 70 Find X =

Binary search EG : 10 20 30 40 50 60 70 Find X = 20 (search value) 10 20 30 40 50 60 70 low high 1. Mid = l+h/2 = 1+7/2 = 4 10 20 30 40 50 60 70 low h Mid high = mid -1

Binary search 10 20 30 40 50 60 70 low h mid = l

Binary search 10 20 30 40 50 60 70 low h mid = l +h/2 = 1+3/2 =2 10 20 30 40 50 60 70 l m h check x = a[mid] , yes matching so return index - ie 2