随机算法学习指南
整数数组随机生成算法
[python]
#python
import random
array = [random.randint(-100, 100) for _ in range(1000)]
for i in array:
print(i,end=" ")
随机抽取一组不重复的数
Fisher-Yates洗牌算法(Knuth洗牌算法)
时间复杂度优化到了O(n),空间复杂度优化到了O(1)。
void shuffle(int datas[],int length){
for(int i=length-1;i>=0;i--){
int j=rand()%(i+1);
int temp=datas[i];
datas[i]=datas[j];
datas[j]=temp;
}
}
void solve(){
srand(time(0));
int datas[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12, 13, 14, 15, 16, 17, 18, 19, 20};
shuffle(datas,20);
for(int i=0;i<20;i++){
cout<<datas[i]<<" ";
}
}
本文作者:White_Sheep
本文链接:https://www.cnblogs.com/taotao123456/p/17788988.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步