Solved
Recursive Function Problem
Posted on 2011-02-22
The function binarySearch used to be iterative, and now I'm trying to make it recursive. However, for some reason, I get an error when I try to pass the 2nd parameter... can anyone give me a hint as to what I'm doing wrong?
Code:
#include <iostream>
using namespace std;
int binarySearch(int, int *, int);
int main()
{
int myList[10] = {1,7,13,17,24,38,45,50,100,1000};
int num;
int loc;
int i;
cout << "The list you entered is: " << endl;
for (i=0; i < sizeof(myList)/sizeof(int); i++)
cout << myList << " ";
cout << endl;
cout << "Enter search item: ";
cin >> num;
cout << endl;
binarySearch(num, myList, sizeof(myList)/sizeof(int));
loc = binarySearch(num, myList, sizeof(myList)/sizeof(int));
if (loc != -1)
cout << "Item found at position " << loc << endl;
else
cout << "Item not in the list" << endl;
system("pause");
return 0;
}
int binarySearch(int item, int *list, int length)
{
int first = 0;
int last = length - 1;
int mid;
if (first <= last)
{
mid = (first + last) / 2;
if (list[mid] == item)
return mid;
else if(list[mid] > item)
return binarySearch(item, first, mid - 1);
else
return binarySearch(item, mid + 1, last);
}
else
return -1;
}