Quicksort em C

Outro dia, tentando fazer um servidor de bucket-sort, eu me deparei com um problema que a muito tempo eu não via, o quicksort. Pensei então, ai está uma coisa legal de colocar no servidor.
O quicksort é um problema clássico de ordenação em C. Estranhamente, esse algoritmo é ruim na teoria, mas para todos os casos práticos ele é um dos melhores.
Existem várias versões de quicksorte, mas a idéia é sempre a mesma, dividir um vetor, escolher um pivô, ordenar cada vetor em 3 vetores diferentes (menores que o pivô, maiores, e iguais), fazer novamente essa ordenação para cada vetor, e no final, concatenar tudo. Para saber mais (e de onde eu tirei o algorítmo em sí para fazer esse primeiro programa), de uma olhada na Wikipedia.
O programa está no SVN, em um novo repositório chamado C, onde o endereço é: http://svn.geekvault.org/c/quicksort. Para compilar, execute o clássico

./configure
make

Um detalhe sobre os programas feitos de agora em diante, eles sempre terão documentação feita utilizando Doxygen. O que isso quer dizer? Quer dizer que com aqueles poucos comentários que temos nos arquivos de cabeçalho (.h), temos toda a estrutura de documentação vista aqui, o que quer dizer que temos mais um domínio, http://docs.geekvault.org, que em breve terá uma index “bonitinha” com todas as documentações de todos os programas que eu fizer.

Bom, para hoje foram bastantes novidades ;) . Em breve teremos outras versões mais complexas do quicksort, atualizadas no svn obviamente.

PS: Caso você não sabia como utilizar o svn, de uma olhada nesse post.