Métodos de Búsqueda y Ordenamiento
En la lección de hoy veremos como implementar los métodos de búsqueda secuencial y búsqueda binaria y los ordenamientos por selección:
Búsquedas:
Búsqueda Secuencial: Recorre todo el arreglo comparando elemento por elemento, el método implementado nos da la posición del elemento en el arreglo.
public int BusquedaSecuencial(String[] a, String dato){ // recibe un arreglo de String y el dato a buscar
for(int i=0;i<a.length;i++){
if(a[i].equals(dato)){ // recorre todo el arreglo y si el elemento es igual al dato
return (i); // retorna la posición buscada
}
}
return -1;
}
Búsqueda Binaria: El arreglo debe estar ordenado antes de entrar al método, lo que hace es dividir el arreglo en 2 y ver si el dato se encuentra a la izquierda o a la derecha y así sucesivamente ir dividiendo hasta que lo encuentre o la longitud del salto sea 0 y no exista el elemento, el método implementado nos da la posición del elemento en el arreglo.
public int BusquedaBinaria(int[] a, int dato){
//Suponiendo el arreglo ordenado
int pos;
int pos1=0;
int pos2=a.length;
int salto=pos2-pos1;
salto =salto/2;
while(salto>0){
if(a[pos1+salto]==dato){
return (pos1+salto);
}else{
if(a[pos1+salto]<dato){
pos1=pos1+salto;
}else{
pos2=pos2-salto;
}
}
salto=pos2-pos1;
salto=salto/2;
}
return -1;
}
Ordenamientos:
Burbuja: El método consiste en comparar todos los elementos contra todos, hace comparaciones y va intercambiando valores, el método da como resultado el arreglo de Strings ordenado.
public String[] OrdenaPorBurbuja(String a[]){
String aux;
for(int i=0;i<a.length;i++){
for(int e=i;e<a.length;e++){
if(a[i].compareTo(a[e])>0){
aux=a[i];
a[i]=a[e];
a[e]=aux;
}
}
}
return a;
}
Ordenamiento por Selección:
public int[] OrdenamientoSeleccion(int b[]){
int c[]=new int[b.length];
int d[]=new int[b.length];
int ultimomenor=0;
for(int i=0;i<d.length;i++){
d[i]=0;
}
int menor;
int mayor=b[0];
for(int i=0;i<d.length;i++){
if(mayor<b[i]){
mayor=b[i];
}
}
for(int i=0;i<b.length;i++){
menor=mayor;
for(int e=0;e<b.length;e++){
if(menor>b[e] && d[e]==0){
menor=b[e];
ultimomenor=e;
}
}
d[ultimomenor]=1;
c[i]=menor;
}
return c;
}
No hay comentarios:
Publicar un comentario