ALGORITHM:
STEP 1: Start the program.
STEP 2: Read the value of n.
STEP 3: Set a for loop to read the elements of array.
for(i = 0; i < n; i++)
STEP 4: Set a for loop.
for(i = 0; i < n; i++)
STEP 5: Nest another for loop.
for(j = i + 1; j < n; j++)
STEP 6: Check the condition a[i] > a[j]
STEP 7: If so swap the two values using temporary variable t as
t = a[i]
a[i] = a[j]
a[j] = t
STEP 8: Else go back to step 6.
STEP 9: Set a for loop to print the value of array a.
for(i = 0; i < n; i++)
STEP 10: Read the search key as k.
STEP 11: Assign low = 0 and high = n – 1.
STEP 12: Call the function binsearch(a, k, low, high)
STEP 13: Check if ans is not equal to 1, if so print the position b + i. else print that element is not found.
STEP 14: Stop the program.
FUNCTION BINARY SEARCH (int *a[ ], int x, int low, int high)
STEP 1: Check if low > high if so return -1.
STEP 2: Else assign mean value of low and high to mid.
mid = ( high + low ) / 2.
STEP 3: Assign the value of a[mid] to p
p = a[mid]
STEP 4: Check if x == p if so then return mid
STEP 5: Else check whether x < p if so then return binsearch(a, x, low, mid - 1)
STEP 6: Else return binsearch(a, x, mid + 1, high)
SAMPLE PROGRAM:
#include<stdio.h>
#include<conio.h>
binarysearch(int *[], int, int);
void main()
{
int i, j, n, a[10], t, k, b ;
clrscr();
printf(" Enter The number of elements: ");
scanf(" %d ", &n);
printf(" Enter array elements: \n ");
for(i = 0; i < n; i++)
scanf(" %d ", &a[i]);
printf(" Sorted array: \n ");
for(i = 0; i < n; i++)
for(j = i + 1; j < n; j++)
if(a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
for(i = 0; i < n; i++)
printf(" %d ", a[i]);
printf(" \n Enter the element to search: \n ");
scanf(" %d ", &k);
b = binarysearch(&a, n, k);
if(b !=-1)
printf(" Position:%d ", b);
else
printf(" Search element not found.\n ");
getch();
}
binarysearch(int *a[],int n,int k)
{
int mid, low, high, p;
low = 0;
high = n - 1;
while(low <= high)
{
mid = (low + high) / 2;
p = a[mid];
if(p > k)
high = mid - 1;
else if(p < k)
low = mid + 1;
else if(k == p)
return mid;
}
return-1;
}
OUTPUT:
Enter the number of elements: 6
Enter the array elements
23
45
89
98
09
65
Sorted array 09 23 45 65 89 98
Enter the element to search: 23
Position: 2
Enter the element to search: 50
The number is not present in the list.
ALSO READ:
-- Program To Understand Working Of Address Concept.
-- Program On Use Of Array & Pointer Concept Together.
-- Program On Pointers & 2 - Dimensional Array.
-- Program On Strings Into Array Of Pointers.
-- Program To Accept & Add Ten Numbers Using Pointers.
-- Program To Implement Minimum Spanning Tree Using Functions, Pointers & Structures.
-- Program To Implement 8 Queens Problem Using Arrays, Pointers & Functions.
-- Program To Implement Quick Sort Using Pointers, Functions & Arrays.
-- Program With Algorithm To Implement Bubble Sort Using Pointers.
-- Program To Implement Recursive Algorithm Using Pointers.
-- Program On Strings Into Array Of Pointers.
-- Program On Pointers & 2 - Dimensional Array.
-- Program On Use Of Array & Pointer Concept Together.
-- Program On Arithmetic Calculations Using Pointers.
-- Program To Add Two Numbers Using Pointers.
-- Program To Accept & Add Ten Numbers Using Pointers.
... Back To C Program Index.
Comments
Post a Comment
Please share your opinions and suggestions or your experience in the comments section. This way we can all help each other...
Experienced guys can share their resumes at admin@interview-made-easy.com