Domina el algoritmo para mover ceros

Desplaza ceros al final de un arreglo en una pasada con dos punteros: solución in situ, estable y con espacio O(1). Incluye explicación y ejemplo en Java.

23 sept 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Problema: Dado un arreglo como [0, 1, 0, 3, 12] desplazar todos los ceros al final obteniendo [1, 3, 12, 0, 0]. Restricciones: mantener el orden relativo de los elementos distintos de cero, hacerlo in situ con espacio O(1) y preferiblemente en una sola pasada O(n).

Solución resumida: magia de dos punteros. Usamos un puntero left que señala la posición donde colocar el siguiente elemento distinto de cero y un puntero right que recorre el arreglo buscando elementos no nulos. Cada vez que encontramos un valor distinto de cero intercambiamos nums[left] con nums[right] y avanzamos left. De ese modo conservamos el orden y desplazamos los ceros hacia la derecha.

Implementación en Java: public class MoveZeros { public static void moveZeroes(int[] nums) { int left = 0; for (int right = 0; right < nums.length; right++) { if (nums[right] != 0) { int temp = nums[left]; nums[left] = nums[right]; nums[right] = temp; left++; } } } }

Ejemplo paso a paso con [0, 1, 0, 3, 12]: right=0 es cero se ignora; right=1 vale 1 se intercambia con left=0 resultando [1, 0, 0, 3, 12] y left pasa a 1; right=2 es cero se ignora; right=3 vale 3 se intercambia con left=1 resultando [1, 3, 0, 0, 12] y left pasa a 2; right=4 vale 12 se intercambia con left=2 resultando [1, 3, 12, 0, 0]. Resultado final [1, 3, 12, 0, 0].

Invariante clave: todo lo que está antes de left contiene únicamente elementos distintos de cero en su orden relativo original. left sólo avanza cuando colocamos un no-cero y right recorre de izquierda a derecha, lo que garantiza estabilidad.

Error común a evitar: incrementar left fuera del bloque condicional if provocará que left avance también cuando el elemento actual sea cero, perdiendo la posición correcta para futuros no-ceros. Asegúrese de colocar left++ dentro del if.

Casos de intercambio: si left == right el intercambio no cambia nada; si left < right intercambiamos un no-cero con un cero a su izquierda moviendo el no-cero hacia adelante y el cero hacia atrás.

Análisis: complejidad temporal O(n) en una sola pasada y complejidad espacial O(1) usando solo dos variables adicionales. Es estable en el sentido de que mantiene el orden relativo de los elementos distintos de cero y se hace in situ.

Patrón: particionado con dos punteros. left mantiene la sección buena y right explora para encontrar elementos que rellenan esa sección. Este patrón sirve para problemas como mover números negativos a la izquierda, separar pares e impares, y el clásico Dutch National Flag para tres categorías.

Variaciones para practicar: eliminar todas las apariciones de un valor, eliminar duplicados, ordenar colores (0, 1, 2), o particionar un arreglo según una condición.

Mentalidad: piensa en left como un cursor con la regla simple todo lo anterior es lo que queremos en el resultado final. Al encontrar un no-cero colócalo en el cursor y avanza. Al encontrar un cero ignóralo y espera al siguiente no-cero.

En Q2BSTUDIO desarrollamos soluciones a medida y ayudamos a equipos a implementar algoritmos eficientes como este dentro de aplicaciones reales. Si necesitas una aplicación optimizada o un sistema de procesamiento de datos con lógica eficiente consulta nuestras soluciones de software a medida y aplicaciones a medida o descubre cómo aplicamos inteligencia artificial en proyectos empresariales en ia para empresas y agentes IA. Somos especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y desarrollo de aplicaciones a medida, además de ofrecer experiencia en power bi y agentes IA para mejorar la toma de decisiones.

Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Si quieres que integremos este tipo de lógica en tu proyecto, optimicemos el rendimiento o diseñemos una solución completa ponte en contacto con Q2BSTUDIO.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat