Quick sort implementation from
http://www.vogella.com/articles/JavaAlgorithmsQuicksort/article.html