Upload
grover
View
26
Download
3
Embed Size (px)
DESCRIPTION
Cs212: DataStructures. Lecture 3: Searching. Lecture Contents. searching S equential search algorithm . B inary search algorithm. Search Algorithms. Searching , the process used to find the location of a target among a list of objects. - PowerPoint PPT Presentation
Citation preview
CS212: DATASTRUCTURES
Lecture 3: Searching
1
2
Lecture Contents
searching Sequential search algorithm. Binary search algorithm.
3
Search Algorithms
Searching , the process used to find the location of a target among a list of objects.
In this chapter, we will study searches that work with arrays Search
Algorithms
Sequential
Search
Binary Search
4
Search Algorithms
1. Sequential search.
1. It works on the ordered list or the unordered.
2. Binary search.
It requires an ordered list.
5
1/ Sequential (Linear) Search
Search an array or list by checking items one at a time.
Sequential search is usually very simple to implement, and is practical when the list has only a few elements, or when performing a single search in an unordered list. Look at every element : This is a very
straightforward loop comparing every element in the array with the target(key).
Eighter we find it,
or we reach the end of the list! Sequential search works the same for both array-
based and linked lists
6
Sequential Search
public int linearSearch (int target)
{
for (int n = 0; n < a.length ; n++)
{if (a[n] == target)
return n;
{
return –1;
}
7
Locating data in unordered list.
8
2/ Binary search algorithm
Search a sorted array by repeatedly dividing the search interval in half.
A fast way to search a sorted array is to use a binary search.
Can’t use binary search algorithm with linked list No physical relationship between the nodes
9
Binary search algorithm
Test the data in the element at the middle of the array.
it is in the first half before middle
it is in the second half after middle
Test the data in the element at the middle of the array.
Test the data in the element at the middle of the array.
it is in the second
half!
it is in the second half!
it is in the first half!
it is in the first half!
.. .... ..
Calculate the middle element
Calculate the middle element
If the middle element equals to the Target , the algorithm stops
Target < middle element Target > middle element
Target < middle Target < middle Target > middleTarget > middle
Calculate the middle element
10
target > A[mid]first = mid +1
target == A[mid]
target < A[mid]last = mid -1
mid=(first+last)/2
11
target < A[mid]last = mid -1
target > A[mid]first = mid +1
target < A[mid]last = first not found stop
target > A[mid]first = mid +1
12
Recursive Binary search algorithm
algorithm RecBinarySearch (First, last , target)INPUT
First is index to first element in the list. last is index to last element in the list. target contains the data to be located.
OUTPUT if found – return the index
if not found – return (-1)
13
Recursive search algorithm
mid = if target = a[mid] then
Location= midelse if (first=last) then
Location= -1else if (target < a[mid]) then
Location =binarySearch(first, mid-1, target)else if (target > a[mid]) then
Location=binarySearch(mid+1, last, target ) Return Location
2/)( lastfirst
base cases
recursive calls
14
Example
[4] [3] [2] [1] [0]
20 11 7 5 3
BinarySearch (0,4,20)M=0+4/2=220 >7 then binarySearch(3 , 4,20)
BinarySearch (3,4,20)M=3+4/2=320 >11 then binarySearch(4 , 4,20)
BinarySearch (4,4,20)M=4+4/2=220 == 20
Return 4
Return 4
Return 4
Recursive call
Recursive call
15 End Of Chapter