main()
Begin
Read array size, "size"
Declare arr[size]
for (i = 0; i < size; i++), do
Read element store in arr[i]
End For
Call quicksort(arr, 0, size - 1)
Display sorted array "arr"
End
quicksort(arr, low, high)
Begin
if (low >= high) return
Set pivot = partition( arr, low, high)
Call quicksort(arr, low, pivot - 1)
Call quicksort(arr, pivot + 1, high)
End
partition(arr, low, mid)
Begin
Set pivot = arr[low]
Set i = low
Set j = high
while (i < j), do
while (i < high && arr[i] <= pivot), do
Increment i by 1
End While
while (j > low && arr[j] > pivot), do
Decrement j by 1
End While
if (i < j), then
Call swap(arr, i, j)
End If
End While
Call swap(arr, low, j)
return j
End
swap(arr, i, j)
Begin
Set temp = arr[i]
Set arr[i] = arr[j]
Set arr[j] = temp
End