Dada una array de n números. El problema es mover todos los 0 al final de la array manteniendo el orden de los otros elementos. Solo se requiere un recorrido único de la array.
Ejemplos:
Input : arr[] = {1, 2, 0, 0, 0, 3, 6} Output : 1 2 3 6 0 0 0 Input: arr[] = {0, 1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0, 9} Output: 1 9 8 4 2 7 6 9 0 0 0 0 0
Algoritmo:
moveZerosToEnd(arr, n) Initialize count = 0 for i = 0 to n-1 if (arr[i] != 0) then swap(arr[count++], arr[i])
Python3
# Python implementation to move all zeroes at # the end of array # function to move all zeroes at # the end of array def moveZerosToEnd (arr, n): # Count of non-zero elements count = 0; # Traverse the array. If arr[i] is non-zero, then # swap the element at index 'count' with the # element at index 'i' for i in range(0, n): if (arr[i] != 0): arr[count], arr[i] = arr[i], arr[count] count+=1 # function to print the array elements def printArray(arr, n): for i in range(0, n): print(arr[i],end=" ") # Driver program to test above arr = [ 0, 1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0, 9 ] n = len(arr) print("Original array:", end=" ") printArray(arr, n) moveZerosToEnd(arr, n) print(" Modified array: ", end=" ") printArray(arr, n) # This code is contributed by # Smitha Dinesh Semwal
Producción:
Original array: 0 1 9 8 4 0 0 2 7 0 6 0 9 Modified array: 1 9 8 4 2 7 6 9 0 0 0 0 0
Complejidad temporal: O(n).
Espacio Auxiliar: O(1).
Consulte el artículo completo sobre Mover todos los ceros al final de la array | ¡ Conjunto 2 (usando un solo recorrido) para obtener más detalles!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA