This C program, using recursion, performs binary search. In this program an array of random number is generated. The user is asked to enter a key. The array of random numbers are sorted and then the binary search operation is performed based on the key.

Here is the source code of the C program to display a linked list in reverse. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

`/*`

`* C Program to Perform Binary Search using Recursion`

`*/`

`#include <stdio.h>`

void binary_search(int [], int, int, int);

void bubble_sort(int [], int);

int main()

`{`

int key, size, i;

int list[25];

printf("Enter size of a list: ");

scanf("%d", &size);

printf("Generating random numbers\n");

for(i = 0; i < size; i++)

`{`

list[i] = rand() % 100;

printf("%d ", list[i]);

`}`

bubble_sort(list, size);

printf("\n\n");

printf("Enter key to search\n");

scanf("%d", &key);

binary_search(list, 0, size, key);

`}`

void bubble_sort(int list[], int size)

`{`

int temp, i, j;

for (i = 0; i < size; i++)

`{`

for (j = i; j < size; j++)

`{`

if (list[i] > list[j])

`{`

temp = list[i];

list[i] = list[j];

list[j] = temp;

`}`

`}`

`}`

`}`

void binary_search(int list[], int lo, int hi, int key)

`{`

int mid;

if (lo > hi)

`{`

printf("Key not found\n");

return;

`}`

mid = (lo + hi) / 2;

if (list[mid] == key)

`{`

printf("Key found\n");

`}`

else if (list[mid] > key)

`{`

binary_search(list, lo, mid - 1, key);

`}`

else if (list[mid] < key)

`{`

binary_search(list, mid + 1, hi, key);

`}`

}}

$ gcc binary_search.c -o binary_search $ a.out Enter size of a list: 10 Generating random numbers 83 86 77 15 93 35 86 92 49 21 Enter key to search 21 Key found

**Sanfoundry Global Education & Learning Series – 1000 C Programs.**

Here’s the list of Best Reference Books in C Programming, Data-Structures and Algorithms

If you wish to look at other example programs on Searching and Sorting, go to C Programming Examples on Searching and Sorting. If you wish to look at programming examples on all topics, go to C Programming Examples.