Eu tenho procurado por implementação para qsort
mas usando o google Eu acho a implementação para algo parecido com isto
void qsort(int[] arr, int left, int right);
O que eu quero é implementação para algo como isto
template <typename T>
void qsort(T* begin, T* end);
Para que eu possa usá-lo em ponteiros brutos , ponteiro inteligente se iteradores
Eu tentei implementá-lo, mas não consegui fazer todos esses casos: classificados , invertendo os elementos classificados e unsorted elements
Qualquer ajuda é apreciada