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.
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

clip-image00285

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++)
    {
        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
        printf("key found at position = %d n", pos);
}

Nilanchala

A blogger, a bit of tech freak and a software developer. He is a thought leader in the fusion of design and mobile technologies. He is the author of Xamarin Mobile Application Development for Android Book (goo.gl/qUZ0XV3), DZone MVB and founder of stacktips.com.

Join The Discussion

Please note: We reserve the right to delete comments that contains snarky remarks, offensive or off-topic. To know more read our comments policy.