Algoritmos de Búsqueda y Ordenación en Java: Binaria, Selección, Inserción y Fusión
Algoritmos de búsqueda y ordenación en Java
Búsqueda binaria (O(log n))
public static int buscar(int[] vector, int x) {
int inicio = 0;
int fin = vector.length - 1;
while (inicio <= fin) {
int medio = (inicio + fin) / 2;
if (vector[medio] < x)
inicio = medio + 1; // Examinar mitad derecha
else if (vector[medio] > x)
fin = medio - 1; // Examinar mitad izquierda
else // Encontrado
return medio;
}
return -1; // No está
}
Ordenación por selección (O(n²))
public static void ordenarSelección(int[] vector) {
for (int i = 0; i < vector.length - 1; i++) {
// Buscar posición del menor elemento entre i y el final
int posMenor = i;
for (int j = i + 1; j < vector.length; j++) {
if (vector[j] < vector[posMenor])
posMenor = j;
}
// Intercambiar elementos...