Algorithms in Java: sorting and searching

Bubble, selection, insertion and binary search, with an animated visualiser showing every comparison and every swap.

En el día a día usarás Arrays.sort() y Collections.sort() (muy optimizados). Pero entender cómo ordena y busca un ordenador te enseña a pensar en coste: no es lo mismo O(n²) que O(log n).

Sorting visualiser

Elige un algoritmo y pulsa «Ordenar». Cada barra es un número; las que se comparan se resaltan.

for (int i = 0; i < n - 1; i++)
    for (int j = 0; j < n - 1 - i; j++)
        if (a[j] > a[j + 1]) {
            int tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp;
        }

Binary search

Sobre un array ya ordenado: mira el elemento del medio; si es mayor que el buscado, descarta la mitad derecha; si es menor, la izquierda. Repite. En un millón de elementos, ~20 pasos.

Complexity (Big-O)

* la inserción es O(n) si el array ya está casi ordenado.

Check what you've learned