Dada una array con N números y separe esos números en dos arrays por números pares o impares. La operación completa requería una complejidad de tiempo O(n) en el mejor de los casos. Para optimizar los usos de la memoria, el primero atraviesa una array y calcula el número total de números pares e impares en ella. Cree dos arrays con el tamaño calculado después de atravesar y comience a almacenarlas.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java Program to Store Even & Odd // Elements of an Array into Separate Arrays public class Even_Odd { // Print array method public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) System.out.print(array[i] + " "); System.out.println(); } public static void main(String[] args) { int n = 8; // array with N size int array[] = { 23, 55, 54, 9, 76, 66, 2, 91 }; int evenSize = 0; int oddSize = 0; for (int i = 0; i < n; i++) { if (array[i] % 2 == 0) evenSize++; else oddSize++; } // odd and even arrays with size int[] even = new int[evenSize]; int[] odd = new int[oddSize]; // odd and even array iterator int j = 0, k = 0; for (int i = 0; i < n; i++) { if (array[i] % 2 == 0) even[j++] = array[i]; else odd[k++] = array[i]; } // print array method System.out.print("Even Array contains: "); printArray(even); System.out.print("Odd Array contains: "); printArray(odd); } }
Producción:
Even Array contains: 54 76 66 2 Odd Array contains: 23 55 9 91
Complejidad de tiempo: O(n)
Complejidad espacial: O(n)
Publicación traducida automáticamente
Artículo escrito por dhatriganda07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA