0

Hello, I need to demonstrate the binary search using recursion, and I've run into a little problem. In my example, if "key" was 1, 2, 3, or 6, then it would return true. Anything else would give me an error. Why is that? Here's my code:

// binary search.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

bool binarySearch(int[], int, int, int);

int _tmain(int argc, _TCHAR* argv[])
{
	int col[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
	int input;
	int x = 0;
	do 
	{
		cout << "The collection: " << endl;
		for (int i = 0; i < 10; i++)
		{
			cout << col[i] << "\t";
			if (i == 4)
				cout << endl;
		}
		cout << endl << endl;
		cout << "Enter a number to see if it is in the collection: " ;
		cin >> input;
		binarySearch(col, 0, 10, input);

		if (binarySearch(col, 0, 10, input) == true)
			cout << "This number is in the collection!" << endl;
		else
			cout << "This number is not in the collection!" << endl;
		x++;
		system("pause");
		system("cls");
	} while (x < 10);
		system("pause");
	return 0;
}

bool binarySearch(int col[], int start, int end, int key)
{
	int mid = (end - start) / (2 + start);

	if (col[mid] == key)
		return true;
	else if (col[mid] < key)
	{
		if (mid > end)
			return false;
		else
			return binarySearch(col, mid + 1, end, key);
	}
	else
	{
		return binarySearch(col, start, mid, key);
	}
}
2
Contributors
4
Replies
7
Views
5 Years
Discussion Span
Last Post by rfrapp
0

Explain line 44.

I'm gonna be honest with you. My teacher gave the class part of this code, and said fix it. That's just what he had already written :p

0

I pointed you to the bug. It is at line 44. What is it supposed to do? What does it do?

It represents the middle of the array. It's used to separate the array into two parts so it can be searched easier.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.