博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程珠玑(续) 读书笔记 -(前言+第一章性能监视工具)
阅读量:6800 次
发布时间:2019-06-26

本文共 1795 字,大约阅读时间需要 5 分钟。

前言  《ACM通讯》

一次一章,仔细地读

ANSI American National Standards Institute  美国国家标准学会

1.1计算素数

P1

#include
int prime(int n ){ int i; for(i =2;i

素数概念:

1.就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,这种整数叫做质数或素数。还可以说成质数只有1和它本身两个约数。 2.素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任 何其它两个整数的乘积。 P2 考虑n不超过∫n的可能的整数因子 程序将变得有效    调用次数也缩减
#include
#include
int root(int n ){ return (int) sqrt((float)n);       5456}int prime(int n){ int i; for(i =2;i

 

过程试讲性能监视说明,sqrt占用的时间最多。P3将sqrt函数移到for循环之外,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
#include<math.h>
int 
root(
int 
n )
{
    
return 
(
int
sqrt
((
float
)n);       5456
}
 
int 
prime(
int 
n)
{
   
<span style=
"background-color: #ffff00;"
int 
i,bound;
    
bound =root(n);
    
for
(i =2;i<bound;i++)</span>                 999
    
{
        
if
(n%i==0)                          5288
     
return 
0;                       831
        
return 
1;                 168
    
}
}
 
main(){
    
int 
i ,n;
    
n=1000;                                  1
    
for
(i=2;i<=n;i++){                       1
    
if
(prime(i))                             999  
        
printf
(
"%d "
,i);            168
    
}  
}

P4

通过对 被 2 ,3 ,5 整除 的特殊检验。消除了, 1/2,1/3,1/5的数,但是有问题 ,2,3,5在这个程序中并没有输出

#include
#include
int root(int n){ return (int) sqrt((float)n);}int prime(int n){ int i,bound; if(n%2==0) return 0; if(n%3==0) return 0; if(n%5==0) return 0; bound =root(n); for(i = 7;i<=bound;i=i+2) { if(n%i==0)return 0; return 1; }}main(){ int i,n; n=1000; for(i =2;i<=n;i++){ if(prime(i)) printf("%d ",i); }}

 

正确的检验 为

if(n%2==0)

return (n==2); 同样 3, 5 也如此,这样就避免了错误

P5 把费时的开方换成了乘法

for(i = 7;i*i<=n;i=i+2){   if(n%i == 0)    return 0;   return 1;        }
当你调优单个子过程或函数的性能时,性能监视工具能告诉你运行时间都花在哪里. 1.2 使用性能监视工具 价值所在。使用监视工具,将大大缩减我们对程序修改的效率,把我们的程序变得更加的完美。 1.3专用的性能监视工具 UNIX管道pipeline 1.4开发性能监视工具 1.5原理 使用和开发 性能监视工具

转载地址:http://pcfwl.baihongyu.com/

你可能感兴趣的文章
C++11 提升Vector效能的技巧
查看>>
Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
查看>>
Neo4j REST API使用实例---ttlsa教程系列之neo4j(二)
查看>>
docker使用指南
查看>>
如何让对方发给你需要的文件格式?
查看>>
php学习笔记--运算符号
查看>>
IPv6已分配地址中国仅占0.29%
查看>>
解决Lync2010和Lync2013转接电话断开的问题
查看>>
find grep wc awk sed sort uniq split指令详解
查看>>
高并发中的卡死状态 -HashMap
查看>>
http上传文件深度解析-高性能http传输
查看>>
Linux下配置Java环境变量
查看>>
Docker简介
查看>>
HTTP State Management Mechanism(HTTP 状态管理机制)
查看>>
IOS之禁用UIWebView的默认交互行为
查看>>
c 睡觉前请关灯 的第一次尝试
查看>>
Linux 的shell脚本编程
查看>>
Git 使用vi或vim命令打开、关闭、保存文件
查看>>
Juniper ScreenOS 路由策略配置
查看>>
go 语言中 byte 与 int 互转, string 与 byte 互转
查看>>