Mostrando entradas con la etiqueta Estructura de Datos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Estructura de Datos. Mostrar todas las entradas

sábado, 4 de enero de 2014

Búsqueda Secuencial

La búsqueda secuencial es una de las Estructuras de datos mas simples que hay, que consiste en buscar el elemento buscado secuencialmente, como su nombre lo dice, es decir que lo busca uno por uno hasta que lo encuentra

Ejemplo:

public  int busquedaSecuencial(int []arreglo,int dato){
               int posicion = -1;
               for(int i = 0; i < arreglo.length; i++){//recorremos todo el arreglo
                   if(arreglo[i] == dato){//comparamos el elemento en el arreglo con el buscado
                    posicion = i;//Si es verdadero guardamos la posicion
                   break;//Para el ciclo
                   }
           }
           return posicion;


       }


Anteriormente tenemos un método que nos recibe dos parámetros, uno es un vector en el que se realizara la búsqueda y el otro es el dato que se va a buscar

A continuación declara una variable posición que tiene como valor inicial -1. TENER EN CUENTA QUE SI EL MÉTODO DEVUELVE -1 QUIERE DECIR QUE EL ELEMENTO BUSCADO NO EXISTE EN EL VECTOR

Luego en un ciclo compara dato por dato hasta encontrar uno que sea igual al dato que se busca, toma la posición del dato encontrado y lo guarda en la variable “posición” que luego es retornado

Llamado o utilización:
  String datoS = JOptionPane.showInputDialog("Digite el dato que desa buscar");
    int dato = Integer.parseInt(datoS);
    int p = Metodos.busquedaSecuencial(Metodos.vectorA, dato);
  
    if (p==-1){
        JOptionPane.showMessageDialog(null,"El dato: " + dato + ", no se encuentra en el vector");
    }else {
        JOptionPane.showMessageDialog(null,"El dato: " + dato + ", se encuentra en la posicion " + p );

    }
Pero uno de los defectos que tiene este método es que en un grupo de objetos muy grande, el procedimiento se hace extremadamente lento, por lo cual no es recomendable en vectores o matrices o lo que sea, demasiado extensos 

Método de Burbuja



En la programación la necesidad de ordenar datos es algo totalmente básico, es por eso que surgen los métodos de ordenamiento, debido a que el método de ordenamiento debe adaptarse a la circunstancia del dato ordenado es que existen tantos de estos, a continuación veremos los más destacados

Método de Burbuja:
El método de burbuja es muy sencillo y de hecho si buscas en Internet puedes encontrar muchos ejemplos como el de a continuación
______________________________________________________________________________
  

  public void ordenaApellidos(Persona[] arreglo) {
                int in;
                for (int i = 1 ; i < (arreglo.length-1) ; i++) {
            Persona aux = arreglo[i];
            in = i;    //inicia el desplazamiento en i
                              
             while (in > 0 && arreglo[in - 1].getApellidos().compareTo(aux.getApellidos()) > 0) {
                                   arreglo[in] = arreglo[in - 1];    //desplaza el elemento hacia la derecha
                                   --in;
            }
                                                              
                   arreglo[in] = aux;    //inserta elemento
                              
                }
    }

Método de burbujas para vector de números

public static void burbuja(int [] A){
        int i, j, aux;
        for(i=0;i<A.length-1;i++)
             for(j=0;j<A.length-i-1;j++)
                  if(A[j+1]<A[j]){
                     aux=A[j+1];
                     A[j+1]=A[j];
                     A[j]=aux;
                  }

}
______________________________________________________________________________
Pero aquí vamos a profundizar un poco más el método y un ejemplo también

Tenemos un programa que nos registra un personal, entre los datos de estas personas están Identificación, Nombre, Apellido y la edad. Con la anterior información registramos a las personas en nuestro sistema, pero además de eso nuestro programa tiene otras funciones como lo son Buscar, Modificar y Eliminar (Funciones básicas para los registros)

A demás tiene una opción Listar (Para listar todos los registros), Limpiar (Para limpiar el textarea donde se muestran los registros) y Ordenar (Para ordenar alfabéticamente los registros) y es en el botón ordenar donde usaremos el método de burbuja


Una vez ingresada la informacion en varios registros, en este caso tres registros que como vemos en la imagen de acontinuacion esta desorganizado, al menos no de manera alfabetica desde los apellidos



Pero si presionamos el botón Ordenar, el cual enviara el vector al método de ordenamiento de burbuja y con este procedimiento el vector quedara con los apellidos ordenados alfabéticamente


Y finalmente quedara de esta manera:


Error al montar disco duro en Linux

¿Te ha ocurrido frecuentemente este error al intentar montar un disco duro en tu sistema Linux? A mi me sucede mucho y note qu...