ALGORITHM BinarySearch(A[0..n - 1], K)
//Implements nonrecursive binary search
//Input: An arrayA[0..n - 1] sorted in ascending order and
// a search key K
//Output: An index of the array’s element that is equal to K or -1 if there is //no such element
l ← 0;
r ← n - 1
while l ≤ r do
m ← (l + r)/2
if K = A[m]
return m
else if K < A[m]
r ← m - 1
else l ← m + 1return -1
C program:
#include <stdio.h>
int main()
{
int c, first, last, middle, n, search, array[100];
printf("Enter the number of elements\n");
scanf("%d",&n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d",&array[c]);
printf("Enter the value to find\n");
scanf("%d", &search);
first = 0;
last = n - 1;
middle = (first+last)/2;
while (first <= last) {
if (array[middle] < search)
first = middle + 1;
else if (array[middle] == search) {
printf("%d found at location %d.\n", search, middle+1);
break;
}
else
last = middle - 1;
middle = (first + last)/2;
}
if (first > last)
printf("Not found! %d isn't present in the list.\n", search);
return 0;
}
Output:
Enter the number of elements
5
Enter 5 integers
1
2
3
45
6
Enter the value to find
3
3 found at location 3.
//Implements nonrecursive binary search
//Input: An arrayA[0..n - 1] sorted in ascending order and
// a search key K
//Output: An index of the array’s element that is equal to K or -1 if there is //no such element
l ← 0;
r ← n - 1
while l ≤ r do
m ← (l + r)/2
if K = A[m]
return m
else if K < A[m]
r ← m - 1
else l ← m + 1return -1
C program:
#include <stdio.h>
int main()
{
int c, first, last, middle, n, search, array[100];
printf("Enter the number of elements\n");
scanf("%d",&n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d",&array[c]);
printf("Enter the value to find\n");
scanf("%d", &search);
first = 0;
last = n - 1;
middle = (first+last)/2;
while (first <= last) {
if (array[middle] < search)
first = middle + 1;
else if (array[middle] == search) {
printf("%d found at location %d.\n", search, middle+1);
break;
}
else
last = middle - 1;
middle = (first + last)/2;
}
if (first > last)
printf("Not found! %d isn't present in the list.\n", search);
return 0;
}
Output:
Enter the number of elements
5
Enter 5 integers
1
2
3
45
6
Enter the value to find
3
3 found at location 3.
0 comments:
Post a Comment