Algoritmo en java del ordenamiento por inserción
La ordenación por inserción es considera como un algoritmo sencillo, este algoritmo tiene la característica de mantener ordenadas las regiones sin ordenar de la matriz. En cada iteración, el siguiente elemento sin ordenar se mueve hacia arriba a una apropiada posición en la región donde están ordenados. Es mucho menos eficiente en grandes listas, que los más algoritmos avanzados como quicksort. Pero tiene algunas ventajas:
-Fácil de implementar
-Eficiente en (bastante) pequeños conjuntos de datos
-Eficiente en conjuntos de datos que ya están ordenados sustancialmente
-Estable (no cambia el orden relativo de los elementos)
En términos abstractos, cada iteración de una ordenación por inserción elimina un elemento de la entrada de datos, insertándolo en la posición correcta en la lista ya ordenada, hasta que no haya elementos en la entrada. La elección del elemento a eliminar de la entrada es arbitraria.
A continuación el algoritmo por el método de inserción en java
void insertionSort (int[] A) {
int j;
for (int i = 1; i < A.length; i++) {
int a = A[i];
for (j = i - 1; j >=0 && A[j] > a; j--){
A[j + 1] = A[j];
}
A[j + 1] = a;
}
}
Método de busqueda binaria
class BusquedaBinaria{ /** * Busca un valor numerico dentro de un arreglo numerico... * previamente ordenado usando el metodo de busqueda binaria * * @param arreglo con los elementos; dato a buscar * @return posicion del elemento buscado, en caso de no existir retorna -1 */ public static int busquedaBinaria(int vector[], int dato){ int n = vector.length; int centro,inf=0,sup=n-1; while(inf<=sup){ centro=(sup+inf)/2; if(vector[centro]==dato) return centro; else if(dato < vector [centro] ){ sup=centro-1; } else { inf=centro+1; } } return -1; } public static void main(String []args){ int[]vector ={1,4,7,8,9,14,23,47,56,60,61,63,65,66,68,69,70,73,76,77,79,80,82}; int valorBuscado = 70; System.out.println(busquedaBinaria(vector,valorBuscado)); } }
No hay comentarios.:
Publicar un comentario