2 Name: quicksort - Quicksort for arrays of unsorted integers
4 Description: quicksort applies the Quicksort using static or randomised pivot element selection on an unsorted array of integers.
6 Author: Eugen Sawin <sawine@me73.com>
10 args = parse_arguments()
11 array = [int(e.strip()) for e in args.array.split(',')]
13 print quicksort(array, random)
15 from random import randrange
17 def quicksort(array, random=False):
21 p = randrange(len(array))
27 left, right = partition(array, pivot)
28 left = quicksort(left, random)
29 right = quicksort(right, random)
30 print left + [pivot] + right
31 return left + [pivot] + right
33 def partition(array, pivot):
43 from argparse import ArgumentParser
45 def parse_arguments():
46 parser = ArgumentParser(description='Applies Quicksort on an unsorted array of integers.')
47 parser.add_argument('array', help='comma-separated values')
48 parser.add_argument('-r', action='store_true', help='randomised pivot selection')
49 return parser.parse_args()
51 if __name__ == "__main__":