Unit 8
Unit 8
Sequential Search is the most natural searching method. In this method, the
searching begins with searching every element of the list till the required record
is found. It makes no demands on the ordering of records. It takes considerably
amount of time and is slower.
BEGIN
Set I to 0
If List [I] = T
FOUND = true
Else
I=I+1
END
3. If FOUND is false
END
The fewest possible comparisons = 1. When the required item is the first item in
the list. The maximum comparisons = N when the required item is the last item
in the list. Thus if the required item is in position I in the list, I comparisons are
required. Hence the average number of comparisons done by sequential search
is (N+1)/2
Sequential search is easy to write and efficient for short lists. It does not require
sorted data. However it is disastrous for long lists. There is no way of quickly
establishing that the required item is not in the list or of finding all occurrences
of a required item at one place. We can overcome these deficiencies with Binary
search.
Int I;
{
YIASCM
return 0;
void main()
printf("Enter n valuesn");
if (pos == 0)
else
YIASCM
Binary Searching
Binary search looks for a particular item by comparing the middle most item of
the collection. If a match occurs, then the index of item is returned. If the
middle item is greater than the item, then the item is searched in the sub-array
to the left of the middle item. Otherwise, the item is searched for in the sub-
array to the right of the middle item. This process continues on the sub-array as
well until the size of the subarray reduces to zero.
How Binary Search Works?
For a binary search to work, it is mandatory for the target array to be sorted.
We shall learn the process of binary search with a pictorial example. The
following is our sorted array and let us assume that we need to search the
location of value 31 using binary search.
Now we compare the value stored at location 4, with the value being searched,
i.e. 31. We find that the value at location 4 is 27, which is not a match. As the
value is greater than 27 and we have a sorted array, so we also know that the
target value must be in the upper portion of the array.
We change our low to mid + 1 and find the new mid value again.
YIASCM
low = mid + 1
mid = low + (high - low) / 2
Our new mid is 7 now. We compare the value stored at location 7 with our
target value 31.
The value stored at location 7 is not a match, rather it is more than what we are
looking for. So, the value must be in the lower part from this location.
We compare the value stored at location 5 with our target value. We find that it
is a match.
Search trees
a search tree is a tree data structure used for locating specific keys from within
a set. In order for a tree to function as a search tree, the key for each node must
be greater than any keys in subtrees on the left, and less than any keys in
subtrees on the right.[1]
YIASCM
The advantage of search trees is their efficient search time given the tree is
reasonably balanced, which is to say the leaves at either end are of comparable
depths. Various search-tree data structures exist, several of which also allow
efficient insertion and deletion of elements, which operations then have to
maintain tree balance.
Search trees are often used to implement an associative array. The search tree
algorithm uses the key from the key–value pair to find a location, and then the
application stores the entire key–value pair at that particular location.