004
17.01.2007, 13:22 Uhr
0xdeadbeef
Gott (Operator)
|
Das ist kein selection sort. Eben mal hingekladdet:
C++: |
#include <algorithm> #include <iostream> #include <iterator>
int *minimum_position(int *begin, int *end) { if(end - begin == 1) return begin; int *ptr = minimum_position(begin + 1, end); return *begin < *ptr ? begin : ptr; }
void selection_sort(int *begin, int *end) { int *min_pos, tmp;
if(end - begin == 1) return;
min_pos = minimum_position(begin, end); tmp = *min_pos; *min_pos = *begin; *begin = tmp;
selection_sort(begin + 1, end); }
int main() { int foo[] = { 31, 25, 12, 22, 11 };
selection_sort(foo, foo + 5);
std::copy(foo, foo + 5, std::ostream_iterator<int>(std::cout, " ")); std::cout << std::endl; }
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |