用vector与bitset分别创建1亿以内的素数表,比较快慢
vector容器:
代码如下:
#include<iostream>
#include<vector>
#include<ctime>
using namespace std;
int main()
{
int num=0;
clock_t t=clock();
vector<int> p(100000001,1); //设置大小为1亿,初始值为1
for(int i=2;i<=10000;i++)
if(p[i])
for(int j=i*i;j<p.size();j+=i) //p.size()为容器大小
p[j]=0;
for(int i=2;i<=100000000;i++)
if(p[i])
num++;
cout<<num<<endl;
cout<<(clock()-t)/CLK_TCK<<endl; //用时为8秒
return 0;
}
bitset容器
代码如下:
#include<iostream>
#include<bitset>
#include<ctime>
using namespace std;
int main()
{
int num=0;
clock_t t=clock();
bitset<100000001>*p= new bitset<100000001>; //大小为1亿
p->set(); //设置每一位都为1
for(int i=2;i<=10000;i++)
if(p->test(i)) //p->test(j)取第i位的元素值
for(int j=i*i;j<p->size();j+=i)
p->reset(j); //把第j位变为0
for(int i=2;i<=100000000;i++)
if(p->test(i))
num++;
cout<<num<<endl;
cout<<(clock()-t)/CLK_TCK<<endl; //用时22秒
delete[] p;
return 0;
}
用vector与bitset分别创建1亿以内的素数表,比较快慢的更多相关文章
- C++ 标准库类型-String,Vector and Bitset
<C++ Primer 4th>读书摘要 最重要的标准库类型是 string 和 vector,它们分别定义了大小可变的字符串和集合.这些标准库类型是语言组成部分中更基本的那些数据类型(如 ...
- 4190. Prime Palindromes 一亿以内的质数回文数
Description The number 151 is a prime palindrome because it is both a prime number and a palindrome ...
- 【ZZNU-oj-2116:人间不值得】(1亿以内的货币拼音转数值求折扣价原价)--hash+String大法好+字符串处理+超大暴力模拟题
B : 人间不值得 概览问题列表状态排名编辑 Progress Bar 时间限制:1 Sec 内存限制:256 MiB提交:146 答案正确:12 提交 编辑 题目描述 家缠万贯来几时,我今停杯一问之 ...
- bjfu1211 推公式,筛素数
题目是求fun(n)的值 fun(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])C[n][k] ...
- Go -- 性能优化
今日头条使用 Go 语言构建了大规模的微服务架构,本文结合 Go 语言特性着重讲解了并发,超时控制,性能等在构建微服务中的实践. 今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上.微服务 ...
- 【POJ - 3126】Prime Path(bfs)
Prime Path 原文是English 这里直接上中文了 Descriptions: 给你两个四位的素数a,b.a可以改变某一位上的数字变成c,但只有当c也是四位的素数时才能进行这种改变.请你计算 ...
- 关于c++的 vector 容器的使用及创建方法
1.vector向量容器的使用,vector具有自动管理的功能,可以进行元素的查找删除 创建方法: (1) vector<int > v; 创建了一个v的容器,没指定容量: (2) v ...
- 动态创建二维vector数组 C和C++ 及指针与引用的区别
二维vectorvector<vector <int> > ivec(m ,vector<int>(n)); //m*n的二维vector 动态创建m*n的二 ...
- Java 集合深入理解(12):古老的 Vector
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天刮台风,躲屋里看看 Vector ! 都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这 ...
随机推荐
- vim中文乱码问题
问题如下: 修改 /etc/vimrc 文件 添加: ,ucs-bom,gb18030,gbk,gb2312,cp936 把/etc/vimrc复制到你自己的根目录下面:复制为.vimrc(前面有个点 ...
- idea for Mac for循环快捷键
1.itar 生成array for代码块 for (int i = 0; i < array.length; i++) { = array[i]; } 2.itco 生成Collection迭 ...
- JS 作用域(执行环境)与作用链---JS 学习笔记(二)
一 作用域(执行环境) 作用域:定义了变量和函数有权访问的其他数据,决定了他们各自的行为.--------<JS高级程序设计>4.2 好难理解啊~参考了参考尤克希的博客内容,大体上理解了 ...
- MySQL 存储过程循环
MySQL 存储过程循环 MySQL循环语句(包括WHILE,REPEAT和LOOP)来根据条件反复运行代码块. MySQL提供循环语句,允许您根据条件重复执行一个SQL代码块. MySQL中有三个 ...
- 关于spark中DatatFrame函数操作中isin方法的使用
需求: 1.需要从一张mysql数据表中获取并筛选数据 2.通过spark将该表读进来,形成一个df:DataFrame,有一个集合 val list = List[String]("小李& ...
- English trip V2 - 6 Sports Teacher:Taylor Key:phrasal verbs
In this lesson you will learn to talk about sports. 课上内容(Lesson) # How many different sports can you ...
- 理解去中心化 稳定币 DAI
本文转载于深入浅出区块链, 原文链接 随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器. 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机 ...
- css实现div左侧突出一个带边框的三角形
.vip-control-header{ width: 600px; height: auto; background: #F8F8F8; border: 1px solid #e2e2e2; pad ...
- Vue2.0选中当前鼠标移入移除加样式
本人写的小程序,功能还在完善中,欢迎扫一扫提出宝贵意见! 效果如gif动态图所示: 1.通过v-for遍历数组 HTML代码: <template> <div class=" ...
- Web程序报错:Error instantiating servlet
---恢复内容开始--- web程序的前期准备工作都做好了,也就是web程序的目录都建好了,在WEB-INF文件夹下建立了classes文件夹,用于存放编好的.class文件.我想这两个类应该都在相应 ...