> ## Documentation Index
> Fetch the complete documentation index at: https://apuntes.simulab.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Algoritmos y estructuras: temas, ideas clave y simuladores

> Algoritmos y estructuras de datos: ordenación, pila, cola, árbol binario de búsqueda y recorridos de grafos (BFS, DFS y Dijkstra), animados paso a paso.

Un **algoritmo** es una receta precisa para resolver un problema, y una **estructura de datos** es una forma de organizar la información para que esa receta sea rápida. Elegir bien los dos es lo que separa un programa que responde al instante de otro que tarda horas. Este bloque reúne los clásicos que se estudian en cualquier curso de programación.

## Las ideas clave del bloque

### Complejidad

Se mide cómo crece el número de operaciones con el tamaño de la entrada $n$: $O(1)$, $O(\log n)$, $O(n)$, $O(n\log n)$, $O(n^2)$… Con un millón de datos, la diferencia entre $n\log n$ y $n^2$ es de decenas de miles de veces.

### Ordenación

Burbuja, selección e inserción son $O(n^2)$; merge sort y quicksort, $O(n\log n)$ de media. Inserción es imbatible con datos casi ordenados.

### Estructuras básicas

* **Pila** (LIFO) y **cola** (FIFO): operaciones en $O(1)$.
* **Árbol binario de búsqueda**: menores a la izquierda y mayores a la derecha; búsqueda en $O(\log n)$ si está equilibrado.

### Grafos

**BFS** recorre por capas con una cola; **DFS**, en profundidad con una pila; **Dijkstra** encuentra caminos más cortos con pesos.

## Orden recomendado

<Steps>
  <Step title="Algoritmos de ordenación">
    Burbuja, selección, inserción, merge sort y quicksort animados, con contador de comparaciones.
  </Step>

  <Step title="Estructuras de datos">
    Pila, cola y árbol binario de búsqueda: inserta, extrae, busca, elimina y recorre paso a paso.
  </Step>

  <Step title="Recorridos de grafos">
    BFS, DFS y Dijkstra paso a paso: frontera, orden de visita, distancias y camino más corto.
  </Step>
</Steps>

## Temas de este bloque

<CardGroup cols={2}>
  <Card title="Algoritmos de ordenación" href="/programacion/algoritmos/ordenacion">
    Los algoritmos de ordenación explicados y animados: burbuja, selección, inserción, merge sort y quicksort, con su idea, código, complejidad en el mejor, medio y peor caso, estabilidad y memoria.
  </Card>

  <Card title="Estructuras de datos" href="/programacion/algoritmos/estructuras-datos">
    Pila (LIFO), cola (FIFO) y árbol binario de búsqueda explicados: operaciones push, pop, encolar, desencolar, insertar, buscar y eliminar, recorridos inorden, preorden y postorden, y su coste.
  </Card>

  <Card title="Recorridos de grafos" href="/programacion/algoritmos/grafos">
    Grafos explicados: búsqueda en anchura (BFS) con cola, búsqueda en profundidad (DFS) con pila y algoritmo de Dijkstra para caminos más cortos con pesos, con pseudocódigo, coste y ejemplos.
  </Card>
</CardGroup>

## Simuladores de algoritmos en Simulab

<CardGroup cols={2}>
  <Card title="Algoritmos de ordenación" icon="flask" href="https://simulab.es/programacion/ordenacion">
    Burbuja, selección, inserción, merge sort y quicksort animados, con contador de comparaciones.
  </Card>

  <Card title="Estructuras de datos" icon="flask" href="https://simulab.es/programacion/estructuras-datos">
    Pila, cola y árbol binario de búsqueda: inserta, extrae, busca, elimina y recorre paso a paso.
  </Card>

  <Card title="Recorridos de grafos" icon="flask" href="https://simulab.es/programacion/grafos">
    BFS, DFS y Dijkstra paso a paso: frontera, orden de visita, distancias y camino más corto.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.