Two Pointer: Dutch National Flag sorting 0, 1, 2, in place Python

PHOTO EMBED

Tue Sep 27 2022 00:07:31 GMT+0000 (Coordinated Universal Time)

Saved by @bryantirawan #python #grokking

def dutch_flag_sort(arr):
  #set low and high pointer 
  low, high = 0, len(arr) - 1 

  i = 0 

  #iterate through arr 
  while i <= high: 
    #if arr[i] is 0, set it before low via swapping 
    #elif arr[i] is 2, set it after high via swapping 
    #elif arr[i] is 1, it will naturally fall in the middle 
    if arr[i] == 0: 
      arr[i], arr[low] = arr[low], arr[i] 
      low += 1 
      i += 1 
    elif arr[i] == 1: 
      i += 1 
    else: #arr[i] == 2: 
      arr[i], arr[high] = arr[high], arr[i] 
      high -= 1 
    
  
  return   
content_copyCOPY

Time: O(N) Space: O(1)

https://www.educative.io/courses/grokking-the-coding-interview/RMBxV6jz6Q0