def qsort(li, reverse=False):
  if len(li) == 0: return li 
  p, *xs = li 
  left  = [x for x in xs if x <= p]
  right = [x for x in xs if x > p]
  if reverse: 
      return [*qsort(right, reverse), p, *qsort(left, reverse)]
  return [*qsort(left, reverse), p, *qsort(right, reverse)]

li = [5,1,4,2,3]
print(qsort(li, reverse=True))

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: