I am doing a quick exercise for university and I am trying to implement the binary search algorithm to one of my methods.
This works perfectly fine however when I try my binary search there is clearly something wrong.
Any help is much appreciated, thanks.
Code:
/**
* Finds a person within an array of people.
*/
public Person find( String name )
{
for ( Person p : this.members )
{
if ( p.getName().equals( name ) )
{
return ( p );
}
}
}
This works perfectly fine however when I try my binary search there is clearly something wrong.
Code:
public Person find( String name )
{
int min = 0;
int max = this.members.size() - 1;
int mid = ( max + min ) / 2;
while ( !( this.members.get( mid ).getName().equals( name ) ) )
{
mid = ( max + min ) / 2;
if ( this.members.get( mid ).getName().compareToIgnoreCase( name ) > 0 )
{
max = mid - 1;
}
else
{
min = mid + 1;
}
}
return ( this.members.get( mid ) );
}
Any help is much appreciated, thanks.
Last edited: