Busca binaria com Matriz

3 respostas
Cassiano_U2

Galera boa tarde!
Preciso da ajuda de vocês nesse algoritmo.
Tenho que criar uma matriz de 500 linhas e 50 colunas que deve ser preenchida com numeros do tipo inteiors sorteado aleatoriamente utilizando a classe Randon. Onde ele tera que fazer uma busca binaria de um numero sorteado e que indique a quantidade de numeros iguais a este presentes na matriz.

Já consegui criar a matriz e preenche-la, mas estou com dificuldade com a busca binaria em matriz.
Desde de ja agradeço a ajuda!

import java.util.Random;

public class Busca_Binario_Matriz {

static int matBin [][] = new int [500][50];

static Random r = new Random();

static int sort;

//---------------------------------------------------

public static boolean b(int x, int numeros[][]){

int inicio=0;

int fim=numeros.length-1;

int meio;

while (inicio<=fim){

meio=(inicio+fim)/2;

if (x == numeros[meio][meio]){

return true;

}

else{

if (x<numeros[meio][meio]){

fim=meio-1;

}

else{

inicio=meio+1;

}

}

}

return false;

}

//----------------------------------

public static void main(String[] args) {

for(int i = 0; i >< 500; i++){

for(int j = 0; j < 50; j++){

matBin[i][j] = (r.nextInt(9999)+1);

}

}

sort = (r.nextInt(9999)+1);

for(int i = 0; i < 500; i++){

for(int j = 0; j < 50; j++){

Busca_Binario_Matriz b1=new Busca_Binario_Matriz();

b(sort, matBin);

<a href="//System.out.println">//System.out.println</a>("linha - "+ (i + 1) + " - Coluna - " + (j + 1) +" - " + matBin [i][j]);	

}

}

System.out.println( "Numero Sorteado pelo Metodo Rando foi: "+sort);

System.out.println( "Quantidade de numeros iguais: ");

}

}

3 Respostas

Ivan_Alves

Ficou meio confuso a sua pergunta, você quer fazer uma busca aleatório através de um número binario (ex.: 0110 = 6)? seria isso?
Uma dica coloque seu código entre as tags (tudo minúsculo) para ficar mais legivel!

kenneth

Bom dia,

A busca binaria, se entendi o que ele precisa, eh aquela que se usa uma array ou
uma matriz ordenada. Voce compara o valor com o que estiver no meio da array,
se este for maior, procura a esquerda, senao, a direita.

Achei este documento, talvez possa ajudar…
(primeiro resultado da busca do Google)

http://tools.assembla.com/svn/gustavo/ed2/matrix/matrix.pdf

Abraco

Cassiano_U2

Obrigado cara! Vou da uma olahada!

Criado 4 de junho de 2011
Ultima resposta 6 de jun. de 2011
Respostas 3
Participantes 3