**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 administrator@abapmadeeasy.com/admin@abaper.in