I am totally new to python and I am trying to implement quicksort in it. Could someone please help me complete my code?
I do not know how to concatenate the three arrays and printing them.
def sort(array=[12,4,5,6,7,3,1,15]):
less = []
equal = []
greater = []
if len(array) > 1:
pivot = array[0]
for x in array:
if x < pivot:
less.append(x)
if x == pivot:
equal.append(x)
if x > pivot:
greater.append(x)
sort(less)
sort(pivot)
sort(greater)
Full example with printed variables at partition step:
Partition - Split an array by a pivot that smaller elements move to the left and greater elemets move to the right or vice versa. A pivot can be an random element from an array. To make this algorith we need to know what is begin and end index of an array and where is a pivot. Then set two auxiliary pointers L, R.
So we have an array user[...,begin,...,end,...]
The start position of L and R pointers
[...,begin,next,...,end,...]
R L
while L < end
1. If a user[pivot] > user[L] then move R by one and swap user[R] with user[L]
2. move L by one
After while swap user[R] with user[pivot]
Quick sort - Use the partition algorithm until every next part of the split by a pivot will have begin index greater or equals than end index.
Here's an easy implementation:-
For Version Python 3.x: a functional-style using
operator
module, primarily to improve readability.and is tested as