Programa Python3 para mover todos los ceros al final de la array | Set-2 (Usando recorrido simple)

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *