Python Quicksort

Here is simple quick sort function written in Python to sort a list of numbers.

def qsort(toSort):

# return the list if only one is left
if len(toSort) < = 1:

return toSort

# set the value to pivot around
pivot = toSort[0] # initialize lists
less = []
greater = []
# sort the list
# skip the first value
for item in toSort[1:]:

if item < = pivot:

less.append(item)

else:

greater.append(item)

# recurse on both lists
r = qsort(less)
r.append(pivot)
r.extend(qsort(greater))
return r

# test
x = [1,99,7,0,7,7,7,99999,8,9,14,74,88]
print qsort(x)

This example is not very useful since python lists have a built in sort function, but should you have a list of tuples that you wanted to sort this function could very easily be modified to work with a value within the tuple that it pulls out instead of sorting by just the item itself.

One Response to “Python Quicksort”

  1. Bob Farrell Says:

    I think it’s a good idea to note that the Python list sort can take a “key” argument, so you would do, e.g.:
    yourlist.sort( key=operator.itemgetter(x) )
    Where yourlist is a list of tuples and x is the index you wish to sort by.

    Usually a good idea to read the docs before publishing. :-)

Leave a Reply