template<class T>
T ReservedSampling(List* list)
{
int i = 1;
T ans;
while(list != NULL)
{
if(i == random() % i + 1) ans = list ->value;
list = list ->next;
++ i;
}
return ans;
}
网上讲原理的一堆,我来个实现吧
template<class T>
T ReservedSampling(List* list)
{
int i = 1;
T ans;
while(list != NULL)
{
if(i == random() % i + 1) ans = list ->value;
list = list ->next;
++ i;
}
return ans;
}