示例#1
0
void QuickSort::SubSort(int* array, int p , int r)
{
	if(p< r)
	{
	int index=Partition(array,p , r);
	SubSort(array, p, index -1 );
	SubSort(array, index +1  , r);
	}
}
    bool operator()(const typename Fnc::class_type& lhs, const typename Fnc::class_type& rhs) const
    { 
	Fnc functor;
	if (functor(lhs) == functor(rhs))
	    return SubSort()(lhs,rhs);
	return SortPolicy<typename Fnc::return_type>()(functor(lhs), functor(rhs)); 
    }
示例#3
0
void QuickSort::sort(int* array, int size)
{
   SubSort(array, 0, size -1);
}
    bool operator()(const T& lhs, const T& rhs) const 
    { 
	if ((lhs.*member_function)() == (rhs.*member_function)())
	    return SubSort()(lhs,rhs);
	return SortPolicy<return_type>()((lhs.*member_function)(), (rhs.*member_function)()); 
    }
    bool operator()(const T& lhs, const T& rhs) const 
    { 
	if (lhs.*member_variable == rhs.*member_variable)
	    return SubSort()(lhs,rhs);
	return SortPolicy<return_type>()(lhs.*member_variable, rhs.*member_variable); 
    }