#include "binary_search.h"
#include <iostream>
using namespace std;
binary_search::binary_search(int max)
{
this->arr = new int[max];
this->nElems = 0;
}
binary_search::binary_search()
{
//this(100);
}
binary_search::~binary_search()
{
delete [] arr;
}
int binary_search::size()
{
return nElems;
}
int binary_search::find(int searchKey)
{
int lowerBound = 0;
int upperBound = nElems-1;
int curIn;
while(true)
{
curIn = (lowerBound+upperBound)/2;
if(arr[curIn] == searchKey)
return curIn;
if(lowerBound > upperBound)
return nElems;
else
{
if(arr[curIn] < searchKey)
lowerBound = curIn + 1;
else
upperBound = curIn - 1;
}
}
}
void binary_search::insert(int value)
{
int i;
for(i=0; i<nElems; i++)
if(arr[i] > value)
break;
for(int k=nElems; k>i; k--)
arr[k] = arr[k-1];
arr[i] = value;
nElems++;
}
void binary_search::deleteElems(int value)
{
int i = find(value);
if(i==nElems)
{
cout<<"fuck you asshole"<<endl;
return;
}
for(int k=i; k<nElems;++k)
{
arr[k] = arr[k+1];
}
nElems--;
}
void binary_search::display()
{
for(int i=0; i<nElems; i++)
cout<<arr[i]<<",";
cout<<""<<endl;
}