**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.

-- 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.

__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.****--**

--

--

... Back To C Program Index.

**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