Binary Search


Algorithm

BinarySearch() Begin Read array size, "size" Declare start = 0 Declare stop = size - 1 Declare index = -1 Declare arr[size] for (i = 0; i < size; i++), do Read element and store in arr[i] End For Read element to search and store it in "target" while (start <= stop), do Set mid = (start + stop) / 2 if (arr[mid] < target), then Set start = mid + 1 else if (arr[mid] > target), do Set stop = mid - 1 else Set index = mid break End If End While if (index == -1), then Display "Element not found" else Display "Element found at position " + (index + 1) End If End

Program

#include <stdio.h> int main() { int i, size, target, mid, index = -1; printf("Enter the size of the array: "); scanf("%d", &size); int start = 0, end = size - 1; // Create the array int arr[size]; for (i = 0; i < size; i++) { printf("Enter element %d: ", i + 1); scanf("%d", &arr[i]); } // Enter element to search printf("Enter element to search: "); scanf("%d", &target); while (start <= end) { mid = (end + start) / 2; if (arr[mid] == target) { index = mid; break; } else if (arr[mid] < target) { start = mid + 1; } else { end = mid - 1; } } if (index == -1) { printf("Element not found"); } else { printf("Element found at position %d", index + 1); } return 0; }