oi , algu�m poderia me ajudar vendo se este programa esta correto?
O enunciado � este :
escreva um m�todo recursivo busca bin�ria (), para realizar uma pesquisa
bin�ria em vetor (array) . O m�todo deve receber como argumento um vetor de
inteiros e o valor a ser encontrado . Se a chave de pesquisa for encontrada , o
m�todo deve retornar "encontrado", caso contr�rio "n�o encontrado".
Aqui esta o exerc�cio:
// buscabinaria.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
public class buscabinaria extends JApplet
implements ActionListener {
JLabel enterLabel, resultLabel;
JTextField enter, result;
JTextArea output;
int a[];
String display = "";
public void init()
{
Container c = getContentPane();
c.setLayout( new FlowLayout() );
enterLabel = new JLabel( "Digite o valor:" );
c.add( enterLabel );
enter = new JTextField( 5 );
enter.addActionListener( this );
c.add( enter );
resultLabel = new JLabel( "Resultado:" );
c.add( resultLabel );
result = new JTextField( 22 );
result.setEditable( false );
c.add( result );
output = new JTextArea( 6, 60 );
output.setFont(
new Font( "Courier", Font.PLAIN, 12 ) );
c.add( output );
a = new int[ 15 ];
for ( int i = 0; i < a.length; i++ )
a[ i ] = 2 * i;
}
public void actionPerformed( ActionEvent e )
{
String searchKey = e.getActionCommand();
display = "Valores Pesquisados\n";
int element =
binarySearch( a, Integer.parseInt( searchKey ) );
output.setText( display );
if ( element !=- 1 )
result.setText(
"Valor encontrado! " );
else
result.setText( "Valor nao encontrado!" );
}
public int binarySearch( int array[], int key )
{
int low = 0;
int high = array.length - 1;
int middle;
while ( low <= high ) {
middle = ( low + high ) / 2;
buildOutput( low, middle, high );
if ( key == array[ middle ] ) // match
return middle;
else if ( key < array[ middle ] )
high = middle - 1; // search low end of array
else
low = middle + 1; // search high end of array
}
return -1;
}
void mostraNumero(int i , int n)
{
System.out.println(i);
if(i==n)
return;
mostraNumero(++i,n);
}
void buildOutput( int low, int mid, int high )
{
DecimalFormat twoDigits = new DecimalFormat( "00" );
for ( int i = 0; i < a.length; i++ ) {
if ( i < low || i > high )
display += " ";
else if ( i == mid ) // mark middle element in output
display += twoDigits.format( a[ i ] ) + "* ";
else
display += twoDigits.format( a[ i ] ) + " ";
}
display += "\n";
}
}
Desde j� agrade�o !
------------------------------------------------------
Esta mensagem foi enviada usando o WebMail Canbras.Net
http://www.canbrasnet.com.br
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------