How to sort an array of 0, 1 and 2 values with while loop and if in Python

1 Answer

0 votes
def sort(arr): 
    start = 0
    endd = len(arr) - 1
    mid = 0
    while mid <= endd: 
        if arr[mid] == 0: 
            arr[start],arr[mid] = arr[mid],arr[start] 
            start += 1
            mid += 1
        elif arr[mid] == 1: 
            mid += 1
        else: 
            arr[mid],arr[endd] = arr[endd],arr[mid]  
            endd -= 1
    return arr 
 
 
arr = [2, 1, 0, 0, 1, 2, 2, 1, 1, 2] 
 
arr = sort(arr) 
 
for n in arr: 
    print(n, end=" ") 
     
    
     
'''
run:
 
0 0 1 1 1 1 2 2 2 2 
 
'''

 



answered Apr 30, 2019 by avibootz
edited Apr 30, 2019 by avibootz
...