input: Write a function to perform quick sort on a list of integers.
  assert quick_sort([3,6,8,10,1,2,1], 0, 6) == [1,1,2,3,6,8,10]
  assert quick_sort([10,7,8,9,1,5], 0, 5) == [1,5,7,8,9,10]
  assert quick_sort([4,2,6,9,2], 0, 4) == [2,2,4,6,9]
output: def quick_sort(arr, low, high):
      if low < high:
          pi = partition(arr, low, high)
          quick_sort(arr, low, pi - 1)
          quick_sort(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 = i + 1
              arr[i], arr[j] = arr[j], arr[i]
      arr[i + 1], arr[high] = arr[high], arr[i + 1]
      return i + 1