Reservoir Sampling (offline)
Example
Input: A = [5, 11, 3, 7], k =3
Output: [3, 7, 11]
Note that there is no fixed output. It might vary for each run.Solution
import(random)
def random_sampling(A, k):
for i in range(k) :
# generate a random number from i to len(A)-1
j = random.randint(i, len(A)-1)
A[i], A[j] = A[j], A[i]
return A[:k]Last updated