(C++) 无重复随机数 ——o(n) .1
来源:互联网 发布:男装店淘宝 编辑:程序博客网 时间:2024/05/17 07:32
题目要求:
无重复的输出0~N之间的所有整数。
代码如下:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespacestd;
void randPlus(int N,int *z_array)
{
int i, j, k, z;
int buffer[N];
for (i=0; i<N; i++)
buffer[i]=0;
srand((unsignedint)time((long *)0));
for (i =0; i < N; i++) {
z = rand() % (N - i);
j = 0; k =0;
while (j <= z)
{
if (buffer[j + k] ==0) j++;
else k++;
}
buffer[j + k - 1] =1;
z_array[i] = j + k - 1;
}
}
int main ()
{
int N;
cout <<"几个数?" <<endl;
cin >> N;
int a[N];
randPlus(N, a);
for (int i =0; i < N; i++)
cout << a[i] <<" ";
cout <<endl;
return0;
}
- (C++) 无重复随机数 ——o(n) .1
- 如何快速产生一个1-n的无重复随机数序列
- 无重复随机数
- 对1...n,数组长度未知进行交换排序(无重复值,时间复杂度O(n), 空间复杂度O(1))
- n个1到n随机数不重复
- Matlab 产生无重复随机数
- 生成无重复的随机数
- C#产生无重复随机数
- 生成无重复的随机数
- 生成无重复的随机数
- java 无重复取随机数
- java 无重复取随机数
- 不重复随机数生成;O(1)时间;二进制哈希判重;
- ver[SIZE]保存的是[iBegin,iBegin+SIZE-1]区间的值,且无重复,请以O(N)时间复杂度和O(1)空间复杂度进行排序
- C/C++面试之算法系列--时间复杂度为o(N)查找1至N-1构成的a[N]重复元素
- 谈谈无重复随机数的产生方法
- 谈谈无重复随机数的产生方法
- 无重复随机数的产生方法
- Redis常用命令以及代码实例
- SAP 时间戳
- Sundy嵌入式底层开发课程笔记 --shell
- 建造SAP Fiori部署
- jmxtrans梳理
- (C++) 无重复随机数 ——o(n) .1
- Servlet中用ZXing生成条码二维码并输出到web页面
- Maven学习记录之maven基本操作命令,maven本地工厂的创建,maven骨架的生成,以及在eclipse中创建maven工程:
- opencv2.4.10+VS2010配置
- js null 空字符 undefined
- 使用AD_DD 工具注册表和表列到应用
- Matrix图片
- java 获取字符串的编码
- SAP UI5 VS WebDynpro