Está en la página 1de 2

package binaria_1;

import java.util.Arrays;
import java.util.Scanner;

public class Binaria_1 {

public static void main(String[] args) {


Scanner sc=new Scanner(System.in);
//La Busqueda binaria comienza siempre con un arreglo ordenado
System.out.println("Tamaño de Arreglo:");
int tam=sc.nextInt();

int[] arreglo=new int[tam];

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


System.out.println("NUMERO ["+i+"]");
arreglo[i]=sc.nextInt();
}

//SE MUESTRA EL ARREGLO


System.out.println("el ARREGLO ES: "+Arrays.toString(arreglo));
System.out.print("INGRESE NUMERO A BUSCAR: ");
int buscador=sc.nextInt();
System.out.println(" ");

//BUSQUEDA LINEAL
busqueda_lineal(arreglo,buscador);

//SE ORDENA EL ARREGLO DADO


shell(arreglo);

//BUSQUEDA BINARIA
busqueda_binaria(arreglo,buscador);

}
public static void shell(int A[]){ //AQUI SE DECLARA EL METODO SHELL
int salto,aux,i;
boolean cambios;

for(salto=A.length/2;salto !=0;salto/=2){
cambios=true;
while(cambios){
cambios=false;
for(i=salto;i<A.length;i++){
if(A[i-salto]>A[i]){
aux=A[i];
A[i]=A[i-salto];
A[i-salto]=aux;
cambios=true;
}
}
}
}
System.out.println("ARREGLO ORDENADO"+Arrays.toString(A));
System.out.println(" ");
}
private static void busqueda_binaria(int[] a,int b) {

int num_buscado=b;
int inferior=0;
int centro;
int superior= a.length-1;

while(inferior <=superior){
centro =(superior + inferior)/2;
if (a[centro]==num_buscado){
System.out.println("---BUSCADOR BINARIO-----");
System.out.println("El numero buscado esta en la posicion: " + centro);
System.out.println(" ");
break;
}else if(num_buscado<a[centro]){
superior= centro-1;

} else{

inferior=centro+1;
}
if(inferior>superior){
System.out.println("El numero ingresado no es valido");
System.out.println(" ");
}
}
}

private static void busqueda_lineal(int[] x,int y) {


int cont=0;
while(cont<x.length){
if (y==x[cont]){
System.out.println("---BUSCADOR LINEAL-----");
System.out.println("El valor buscado esta en la posicion: "+cont);
System.out.println(" ");
break;
}
else if(x.length<y){
System.out.println("El numero ingresado no es valido");
System.out.println(" ");
break;
}
cont=cont+1;
}
}

También podría gustarte