#include #include int numOfCalls = 0; int binarySearch(int* sequence, int element, int firstIndex, int lastIndex) { //return the index of element in sequence. numOfCalls++; int middleIndex = firstIndex + (lastIndex - firstIndex ) / 2; if (sequence[middleIndex] > element) { //The element is before middleIndex. return binarySearch(sequence, element, firstIndex, middleIndex -1); } else if (sequence[middleIndex] == element) { //Found the element. return middleIndex; } else if (sequence[middleIndex < element]) { //The element is after middleIndex. return binarySearch(sequence, element, middleIndex + 1, lastIndex); } } main(int argn, char** args) { /* The first parameter is the number of elements in the sequence. The elements will be 0, 1, 2, ... args[1]-1. The second parameter is the searched element. */ int numOfElements = atoi(args[1]); int* sequence = (int *)malloc(sizeof(int)*numOfElements); for (int i=0; i