کوییک سورت
#include <algorithm>
#include <iterator>
#include <functional>
template <typename T>
void qsort(T begin, T end)
{
if (begin != end)
{
T middle = partition(begin, end, bind2nd(less<iterator_traits<T>::value_type>(), *begin))
qsort(begin, middle);
qsort(max(begin + 1, middle), end);
}
}
Some scaffolding code for testing:
#include <iostream>
int main()
{
int lst[] = {1, 3, 2, 1, 2, 3, 4, 1, 0};
int sz = sizeof(lst) / sizeof(int);
qsort(lst, lst + sz);
copy(lst, lst + sz, ostream_iterator<int>(cout, " "));
return 0;
}
+ نوشته شده در سه شنبه ۱۳۸۴/۰۴/۱۴ ساعت 16:5 توسط باران
|