Code

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 ); 
}


next up previous
Next: Expected-Case Recurrence Up: RANDOMIZED QUICKSORT Previous: Basic Idea