Searching
Searching
Searching Techniques
• Linear search algorithm finds a given element in a list of elements with O(n)
time complexity where n is the total number of elements in the list.
• This search process starts comparing the search element with the first element in
the list.
• If both are matching then results with the element found otherwise search
element is compared with the next
element in the list.
• If both are matched, then the result is "element found". Otherwise, repeat the
same with the next element in the list until the search element is compared with
the last element in the list.
• If that last element also doesn't match, then the result is "Element not found in the
list". That means, the search element is compared with element by element in the list.
Linear search is implemented using the following steps...
Step 2: Compare the search element with the first element in the list.
Step 3: If both are matching, then display "Given element found!!!" and terminate
the function
Step 4: If both are not matching, then compare the search element with the next
element in the list.
Step 5: Repeat steps 3 and 4 until the search element is compared with the last
element in the list.
Step 6: If the last element in the list also doesn't match, then display "Element
not found!!!" and terminate the function.
#include<stdio.h>
void main(){
int list[20], size ,i, sElement;
scanf("%d",&sElement);
Output:
What is Search?
Search is a process of finding a value in a list of values. In other words, searching
is the process of locating a given value position in a list of values.
Binary Search Algorithm
• Binary search algorithm finds a given element in a list of elements with O(log n)
time complexity where n is total number of elements in the list.
• The binary search algorithm can be used with only a sorted list of element.
• That means, binary search can be used only with a list of element which are
already arranged in a order.
• The binary search can not be used for lists of element which are in random
order.
• This search process starts comparing the search element with the middle
element in the list.
• If both are matched, then the result is "element found". Otherwise, we check
whether the search element is smaller or larger than the middle element in the
list.
• If the search element is smaller, then we repeat the same process for the left
sublist of the middle element.
• If the search element is larger, then we repeat the same process for the right
sublist of the middle element.
• We repeat this process until we find the search element in the list or until we are
left with a sublist of only one element. And if that element also doesn't match
with the search element, then the result is "Element not found in the list".
Step 3: Compare the search element with the middle element in the sorted list.
Step 4: If both are matching, then display "Given element found!!!" and
terminate the function
Step 5: If both are not matching, then check whether the search element is smaller
or larger than the middle element.
Step 6: If the search element is smaller than the middle element, then repeat
steps 2, 3, 4 and 5 for the left sublist of the middle element.
Step 7: If the search element is larger than the middle element, then repeat steps 2,
3, 4 and 5 for the right sublist of the middle element.
Step 8: Repeat the same process until we find the search element in the list or
until the sublist contains only one element.
Step 9: If that element also doesn't match with the search element, then display
"Element not found in the list!!!" and terminate the function.
Example
Consider the following list of elements and search element...
Program:
#include<stdio.h>
void main()
{
int first, last, middle, size, i, sElement,
list[100]; clrscr();
first = 0;
last = size - 1;
middle = (first+last)/2;
}
Output:
10 23 45 68 79 93