jueves, 8 de diciembre de 2011

Búsqueda Secuencial (segunda parte)

1.Método de ordenamiento

Es la operación de arreglar los elementos de un determinado vector en algún orden secuencial
de acuerdo a un criterio de ordenamiento.
El propósito principal de un ordenamiento es el de facilitar las búsquedas
de los miembros del conjunto ordenado.

Al hablar de ordenación nos referimos a mostrar los datos en forma
ordenada de manera que tengan un mejor orden, ya que al momento que
el usuario ingresa los datos estos pueden ser ingresados en forma desordenada.

Metodos de Ordenacion
Ordenacion por Seleccion Ordenacion por Seleccion
Ordenacion por Insercion
Búsqueda Secuencial
Búsqueda Binaria
Metodo de Intercambio ó Burbuja
Ordenación por Selección


El proceso de la selección es el siguiente:
1)Captura el Número más pequeño (si se desea ordenar los elementos de
menor a mayor) o el número más grande (si se desea ordenar de mayor a menor).
2)El número capturado es colocado en la primera posición, teniendo en
cuenta que un Array empieza desde la posición Cero.
3)El Proceso se repite para todos los datos sobrantes hasta llegar al
último de ellos.
4)Finalmente los datos quedan ordenados ya sea en forma ascendente o
descendente..


Ordenación por Inserción


El método de ordenación por inserción es similar al proceso típico de
ordenar tarjetas de nombres (cartas de una baraja) por orden alfabético
, que consiste en insertar un nombre en su posición correcta dentro de una
lista o archivo que ya está ordenado. Cada elemento a insertar es considerado uno a la vez,
asimismo se insertan en su posición correspondiente.


Búsqueda Secuencial


Consiste en ingresar un dato a buscar, por lo cual el programa examina cada uno de los elementos del vector.
es decir, el elemento a buscar es comparado con cada uno de
los elementos que contiene el Array.
Si el Array tiene 100 elementos y el dato a Buscar esta en la
posicion 100, entonces se realizara 100 comparaciones puesto que conparará hasta llegar al final del Array,
sin embargo existe la posivilidad que el elemento a buscar
no pertenesca al Array, y la busqueda sera en vano


Búsqueda Binaria


Para poder ejecutar el Método de Búsqueda Binaria, se debe de contar con un Array ordenado. El procedimiento que se realiza es el siguiente:
•EL Programa internamente selecciona el elemento central del Array.
•Si el elemento a buscar es el dato central el proceso termina. •Si el elemento a buscar no coincide con el elemento central, continua la búsqueda:
•Se subdivide en dos partes al Array.
•Si el elemento a buscar es menor que el dato central, entonces selecciona la mitad de la parte izquierda.
•La parte seleccionada se subdivide nuevamente y se repite todo el proceso.
•El proceso termina cuando el dato es encontrado; teniendo en cuenta que el dato a buscar no puede encontrarse en el Array.


Método de Intercambio Ó Burbuja


El método de la Burbuja es menos eficiente puesto que realiza las pasadas necesarias en un array hasta que el Array quede ordenado. Su forma de ejecución es:
•En la primera pasada compara el primer elemento con el segundo elemento.
•En la misma pasada compara el segundo elemento con el tercer elemento.
•Se repite el mismo procedimiento hasta llegar al último elemento.
•Si una vez finalizada la primera pasada el Array sigue desordenado, entonces se realiza una segunda pasada.
•Se realiza el mismo procedimiento en la segunda pasada.
•Se repiten las pasadas necesarias hasta que el Array quede completamente ordenado.
Ejemplos
Ordenacion
int i,j,n;
double aux,x[];
System.out.println("Ingrese la cantidad de numeros a leer:");
n= Integer.parseInt(br.readLine());
x= new double[n];
for (i=0;i System.out.println("Elemento["+i+"]:");
x[i]=Double.parseDouble(br.readLine());} for(i=1;i for(j=n-1;j>=i;j--){
if (x[j-1]>x[j]){
aux=x[j-1];
x[j-1]=x[j];
x[j]=aux;}
}
}
System.out.println("Elemento Ordenado");
for (i=0;i System.out.println("Elemento["+i+"]:"+x[i]);}
}
}
Metodo De Busqueda
int i,n,band;
double x[],elem;
System.out.println("Ingrese los numeros a leer:");
n=Integer.parseInt(br.readLine());
x=new double[n];
System.out.println("Ingrese los elementos del vector:");
for(i=0;i System.out.println("Elemento["+i+"]:");
x[i]=Double.parseDouble(br.readLine());
} System.out.println("Ingrese el elemento a buscar:");
elem=Double.parseDouble(br.readLine());
band=0;
for(i=0;i if(x[i]==elem){
System.out.println("El elemento encontrado:"+i);
band=1;
}
}
if(band==0){
System.out.println("No se encontro el elemento:");
}
}
Media Geometrica
double media[]= new double[999];
double can,sum=1,resul=0;
can=Double.parseDouble(JOptionPane.showInputDialog(null,"Ingrese Cantida De Elementos: "));
for(int i=0;i {
media[i]=Double.parseDouble(JOptionPane.showInputDialog(null,"Ingrese Datos a la Media"));
sum=sum*media[i];
} resul=Math.pow(sum, 1.0/can);
System.out.println("La Media Es Geometrica :"+resul);
} }