美文网首页
生成[0, n)的k个不重复随机数

生成[0, n)的k个不重复随机数

作者: LEO_青蛙 | 来源:发表于2020-05-30 13:45 被阅读0次

【编程珠玑】生成[0, n)的k个不重复随机数:

int[] num = new int[n];
int[] result = new int[k];
for(int i=0; i<n; ++i)
{
    num[i] = i;
}
for(int i=0; i<k; ++i)
{
    int index = rand(i, n);//包含i,不包含n
    swap(num[i], num[index]);//交换数值
    result[i] = num[i];//得到的结果
}

算法复杂度:O(n)

相关文章

网友评论

      本文标题:生成[0, n)的k个不重复随机数

      本文链接:https://www.haomeiwen.com/subject/sewczhtx.html