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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.