Skip to main content

Sample C Program To Implement Binary Search Without Using Recursive Function.


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

Popular posts from this blog

Tell Me Something About Yourself - Interview Answers.

Try to introduce some of your most important employment-oriented skills as well as your education and accomplishments to the interviewer. Answer to this question is very important because it positions you for the rest of the interview . That's why this statement is often called the "Positioning Statement". One should take the opportunity to show his/her communication skills by speaking clearly and concisely in an organized manner. Since there is no right or wrong answer for this question hence it is important to appear friendly. YOUR ANSWERS CAN BE: 1) I am a person with strong interpersonal skills and have the ability to get along well with people . I enjoy challenges and looking for creative solutions to problems. 2) Besides the details given in my resume, I believe in character values, vision and action. I am quick in learning from mistakes. I am confident that the various tests that you have conducted will corroborate my competencies apti...

What Is (Are) Your Weakness (Weaknesses)? - Interview Answers

There’s a saying – “However small the thorn maybe it has the ability to pierce.” Never say you are a Workaholic, a Perfectionist, etc. because it sounds negative. Try to convert these negative biased qualities into positive ones. For Example, In   place of Workaholic you can say you are a hard worker and always willing to work for extra hours. In place of Perfectionist , you can say you are detail oriented and like to set high standard for work. “Try to specify your weakness as your strength and also highlight it as a benefit.” Your answers can be: 1) One of my weaknesses as I perceive is occasional compromise on time for quality and perfection. 2) I feel I am not very detail-oriented . I’m a person that wants accomplish as much as possible. I realized this hurts quality and therefore I‘m trying hard to find a balance between quality and quantity. 3) At times even when I need help, I try to solve my own problems instead of asking a co-worker who might know...

What Is (Are) Your Strengths? - Interview Answers

This is a simple and popular interview question. Generally people answer it in two ways. There are people who simply state their strength like “I am Young, Dynamic, Intelligent, Smart and so on…”. Such answer is neither right nor wrong but does not help u in any way also. Secondly there are peoples who state their strengths and explain them how he can use his strength for the job and industry. Do not simply state your strength. Everyone has some strength, all you need is to convert them into benefits. In short, try to advertise yourself by converting your features into strengths. “EVERYONE CLAIM THEY ARE HONEST, HARDWORKING, SMART AND SO ON….. BUT WITH AN EXAMPLE IT IS MUCH MORE BELIEVABLE.” Your answers can be : 1) I am a hard worker and because of this ability I can work for additional hours to accomplish my tasks.I am commitment oriented and hence I always enjoy the trust and confidence of my team mates which enables me to perform my duties very easily. 2) I am a...