input: Write a python function to sort an array using the QuickSort algorithm.
  assert quickSort([10, 7, 8, 9, 1, 5], 0, 5) == [1, 5, 7, 8, 9, 10]
  assert quickSort([3, 6, 8, 10, 1, 2, 1], 0, 6) == [1, 1, 2, 3, 6, 8, 10]
  assert quickSort([1, 4, 3, 9, 6, 2], 0, 5) == [1, 2, 3, 4, 6, 9]
output: def quickSort(arr, low, high):
      if low < high:
          pi = partition(arr, low, high)
          quickSort(arr, low, pi-1)
          quickSort(arr, pi+1, high)
      return arr
  
  def partition(arr, low, high):
      pivot = arr[high]
      i = low - 1
      for j in range(low, high):
          if arr[j] <= pivot:
              i += 1
              arr[i], arr[j] = arr[j], arr[i]
      arr[i+1], arr[high] = arr[high], arr[i+1]
      return i+1