English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Para separar ceros de no ceros en un array de enteros y llevarlos al final, necesita reordenar su array asignando todos los elementos no nulos a su posición en orden desde cero. Luego, rellenar ceros desde la última posición del array hasta el final.
El siguiente programa Java llevará todos los ceros del array al final.
import java.util.Arrays; import java.util.Scanner; public class ZerosFromNonZeros { public static void main(String args[]){ //Leer array del usuario Scanner sc = new Scanner(System.in); System.out.println("Ingrese el tamaño del array que se va a crear: "); int size = sc.nextInt(); int[] myArray = new int[size]; System.out.println("Ingrese los elementos del array: "); for(int i=0; i<size; i++{ myArray[i] = sc.nextInt(); } System.out.println("El array creado es: "+Arrays.toString(myArray)); System.out.println("Array resultante: "); int pos = 0; for(int i = 0; i < myArray.length;++{ if(myArray[i]!=0){ myArray[pos]=myArray[i]; pos++; } } while(pos < myArray.length) { myArray[pos] = 0; pos++; } System.out.println("El array creado es: "+Arrays.toString(myArray)); } }
Resultado de salida
Ingrese el tamaño del array que se va a crear: 8 Ingrese los elementos del array: 14 0 56 0 12 47 0 0 El array creado es: [14, 0, 56, 0, 12, 47, 0, 0] Array resultante: El array creado es: [14, 56, 12, 47, 0, 0, 0, 0
Colocar ceros de la misma manera en el principio del array, iterar los elementos del array hacia atrás, desde la última posición, ordenando cada elemento no nulo del array en sucesión. Finalmente, rellenar el resto de posiciones con ceros.
Reordenar su array reasignando todos los elementos no nulos a su posición en orden desde cero. Luego, rellenar ceros desde la última posición del array hasta el final.
El siguiente programa Java moverá todos los ceros del array al principio.
import java.util.Arrays; import java.util.Scanner; public class ZerosFromNonZeros { public static void main(String args[]){ //Leer array del usuario Scanner sc = new Scanner(System.in); System.out.println("Ingrese el tamaño del array que se va a crear: "); int size = sc.nextInt(); int[] myArray = new int[size]; System.out.println("Ingrese los elementos del array: "); for(int i=0; i<size; i++{ myArray[i] = sc.nextInt(); } System.out.println("El array creado es: "+Arrays.toString(myArray)); System.out.println("Array resultante: "); int pos = myArray.length-1; for(int i = myArray.length-1; i>=0; i--{ if(myArray[i]!=0){ myArray[pos]=myArray[i]; pos--; } } while(pos>=0) { myArray[pos] = 0; pos--; } System.out.println("El array creado es: "+Arrays.toString(myArray)); } }
Resultado de salida
Ingrese el tamaño del array que se va a crear: 8 Ingrese los elementos del array: 14 0 56 0 12 47 0 0 El array creado es: [14, 0, 56, 0, 12, 47, 0, 0] Array resultante: El array creado es: [0, 0, 0, 0, 14, 56, 12, 47]