0% found this document useful (0 votes)
61 views

Unit 8

Sequential search is the simplest search method that examines each element of a list sequentially until the target element is found. It requires no sorting but can be slow, taking on average (N+1)/2 comparisons for a list of size N. Binary search is more efficient, requiring only logarithmic time by comparing the target to the middle element and recursively searching either the left or right sublist. It requires the list to be sorted first. Search trees also allow efficient searches, insertions and deletions while maintaining balance to optimize search time.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Unit 8

Sequential search is the simplest search method that examines each element of a list sequentially until the target element is found. It requires no sorting but can be slow, taking on average (N+1)/2 comparisons for a list of size N. Binary search is more efficient, requiring only logarithmic time by comparing the target to the middle element and recursively searching either the left or right sublist. It requires the list to be sorted first. Search trees also allow efficient searches, insertions and deletions while maintaining balance to optimize search time.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

YIASCM

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.

Sequential Search Algorithm


This represents the algorithm to search a list of values of to find the required
one.

INPUT: List of size N. Target value T

OUTPUT: Position of T in the list I

BEGIN

1. Set FOUND to false

Set I to 0

2. While (I<=N) and (FOUND is false)

If List [I] = T

FOUND = true

Else

I=I+1

END

3. If FOUND is false

T is not present in List.


YIASCM

END

Analysis of Sequential Search


Whether the sequential search is carried out on lists implemented as arrays or
linked lists or on files, the criterial part in performance is the comparison loop
step 2. Obviously the fewer the number of comparisons, the sooner the
algorithm will terminate.

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.

Example- Program to search for an item using linear search.


#include < stdio.h >

/* Search for key in the List */

int seq_search(int key, int a[], int n)

Int I;

for (i = 0; i < n; i++)

{
YIASCM

If(a[i] == key) return i + 1

return 0;

void main()

int I, n, key, pos, a[20];

printf("Enter the value of n");

scanf("%d", & n);

printf("Enter n valuesn");

for (i = 0; i < n; i++)

scanf("%d", & a[i]);

printf("Enter the item to be searched");

scanf("%d", & key);

pos = seq_search(key, n, a);

if (pos == 0)

printf("Search unscccessful n");

else
YIASCM

printf("key found at position = %d n", pos);

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.

First, we shall determine half of the array by using this formula −


mid = low + (high - low) / 2
Here it is, 0 + (9 - 0 ) / 2 = 4 (integer value of 4.5). So, 4 is the mid of the array.

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.

Hence, we calculate the mid again. This time it is 5.

We compare the value stored at location 5 with our target value. We find that it
is a match.

We conclude that the target value 31 is stored at location 5.


Binary search halves the searchable items and thus reduces the count of
comparisons to be made to very less numbers.

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.

You might also like