void quicksort( vector<int> & data, int start, int end, RandGen & rand ) { if( start < end ) { int boundary = partition( data, start, end, rand.RandInt( start, end ) ); quicksort( data, start, boundary, rand ); quicksort( data, boundary + 1, end, rand ); } } void quicksort( vector<int> & data ) { RandGen rand; quicksort( data, 0, data.size() - 1, rand ); }