Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Busqueda Secuncial y Binaria

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

1) Búsqueda secuencial

Elabore un algoritmo que recorra un array para buscar un elemento de un arreglo.


int matriz[][];

matriz = new int[10][4];

System.out.println("Elementos del array:");

for (int i=0; i < matriz.length; i++) {

for (int j=0; j < matriz[i].length; j++) {

matriz[i][j] = (int) (Math.random() * 100) + 1;

System.out.print(matriz[i][j]+" ");

System.out.println("");

System.out.println("");

int x = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el número"));

int posi = -1;

for (int i = 0; i < matriz.length; i++) {

for (int j = 0; j <matriz[i].length; j++) {

if (matriz[i][j] == x) {

posi = i;

System.out.println("Elemento encontrado en posición i: " + i);

System.out.println("Elemento encontrado en posición j: " + j);

break; //se omite si desea hacer recorrido completo

if (posi == -1) {

System.out.println("No existe el elemento");

}
2) Búsqueda binaria

Hacer un programa que genere aleatoriamente 20 números enteros entre 30 y 80 y que los
guarde en un arreglo.

 Mostrar los elementos del array.

 Ingresar por teclado un elemento a buscar en el arreglo

 Mostrar la posición del elemento encontrado, o un mensaje indicando que no se encuentra


el elemento.

public static void main(String[] args) {

int N[]=new int[20];

System.out.println("Array sin ordenar");

for (int i = 0; i <N.length; i++) {

N [i]=(int)(Math.random()*51)+30;

System.out.print(" "+N[i]);

System.out.println("");

System.out.println("Array ordenado");

for(int i=0;i<N.length;i++) { //No. de pasadas

for(int j=0;j<N.length-i-1;j++){ // Mirar los N-i-1 pares.

if(N[j+1]<N[j]) {

int aux=N[j+1]; // Se intercambian los elem

N[j+1]=N[j]; // de las posiciones j y j+1

N[j]=aux; // usando una variable auxiliar.

for (int i = 0; i <N.length; i++) {

System.out.print(" "+N[i]);

int valor = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el número que desea


encontrar"));
System.out.println("");

int res = tarea2Bin(N,valor);

if (res != -1) {

System.out.println("Se encontró el valor buscado en posición "+res);

}else{

System.out.println("No se encontró el valor buscado");

private static int tarea2Bin(int[] N, int valor) {

int central, inicio, fin;

int valorCentral;

inicio = 0;

fin = N.length - 1;

while (inicio <= fin) {

central = (inicio + fin)/2; //elemento central

valorCentral = N[central]; //valor del índice central

if (valor == valorCentral)

return central; // valor hallado, devuelve la posicion

else if (valor < valorCentral)

fin = central -1; // ir a sublista inferior

else

inicio = central + 1; // ir a sublista superior

return -1; //elemento no encontrado

También podría gustarte