0Pricing
Competitive Programming Academy · Lección

Ordene intervalos por inicio

Ordene los eventos antes de procesarlos

Ordene intervalos por inicio es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.

Qué es un intervalo

Un intervalo es simplemente un par de números: un inicio y un final, como [2, 5]. La mayoría de los problemas de intervalos trabajan con una lista de estos pares. 📏

El orden aporta claridad

Los intervalos originales pueden llegar en cualquier orden, lo que dificulta analizarlos. Ordenarlos primero convierte el caos en un recorrido limpio de izquierda a derecha.

Ordene por el inicio

Lo habitual es ordenar por el valor de inicio. Así, cada intervalo comienza en el mismo punto o después que el anterior, y puede recorrerlos una sola vez.

intervals.sort(key=lambda x: x[0])

Las tuplas se ordenan de forma natural

Si almacena los intervalos como tuplas, Python los ordena primero por el primer elemento y después por el segundo, sin que tenga que hacer nada más. En este caso ni siquiera necesita una función key.

intervals = [(3, 7), (1, 4), (2, 5)]
intervals.sort()

Por qué se prioriza el inicio

Ordenar por el inicio permite procesar los eventos en orden temporal. El siguiente intervalo solo puede comenzar más tarde, y esa es la invariante clave del recorrido.

Empates en el inicio

Cuando dos intervalos comparten el inicio, la clave secundaria decide su orden. Ordenar por (start, end) coloca primero los más cortos, lo que suele ser útil.

intervals.sort(key=lambda x: (x[0], x[1]))

A veces conviene ordenar por el final

Algunos problemas, como programar el máximo número de eventos, ordenan por el final. Elija la clave que corresponda a la información que necesita su recorrido.

intervals.sort(key=lambda x: x[1])

El costo de ordenar

Ordenar cuesta O(n log n), lo cual es barato y normalmente domina estos problemas. El recorrido posterior solo cuesta O(n).

Conserve los datos adicionales

Si cada intervalo incluye un id o un peso, ordene el registro completo, no solo sus límites. La clave controla el orden y los datos permanecen asociados.

intervals.sort(key=lambda iv: iv[0])  # iv = (start, end, id)

Ordene y luego recorra

Casi todos los algoritmos de intervalos siguen este patrón: ordenar primero y recorrer después. Si establece bien el orden, fusionar, contar y programar se convierten en bucles sencillos.

Un modelo mental rápido

Imagine los intervalos como invitados que llegan a una fiesta. Ordenarlos por inicio los coloca según la hora de llegada, para que pueda recibirlos uno por uno.

Comprobación rápida

Está a punto de fusionar una lista de intervalos.

Resumen

Un intervalo es un par de inicio y final, y ordenar por el inicio convierte una lista desordenada en un recorrido limpio. Ordene primero y después procese hacia delante en O(n). 🚀

Preguntas frecuentes

¿La lección «Ordene intervalos por inicio» es gratis?

Sí — el texto completo de «Ordene intervalos por inicio» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Ordene intervalos por inicio»?

Ordene los eventos antes de procesarlos Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Competitive Programming Academy?

No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Ordene intervalos por inicio»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?

Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Ordene intervalos por inicio
  2. Combine intervalos superpuestos
  3. Barrido lineal para el solapamiento máximo
  4. Mínimas eliminaciones para evitar solapamientos
← Volver a Competitive Programming Academy