编程珠玑(续) 读书笔记 -(前言+第一章性能监视工具)

《ACM通讯》

一次一章,仔细地读

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

1.1计算素数

#include<stdio.h>

int prime(int n )
{
    int i;
    for(i =2;i<n;i++){              999
        if(n%i==0)                  78022
            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
        }
    }

}

素数概念:

1.就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,这种整数叫做质数或素数。还可以说成质数只有1和它本身两个约数。

 2.素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任  何其它两个整数的乘积。

P2 考虑n不超过∫n的可能的整数因子 程序将变得有效    调用次数也缩减
#include<stdio.h>
#include<math.h>
int root(int n )
{
    return (int) sqrt((float)n);       5456
}

int prime(int n)
{
    int i;
    for(i =2;i<root(n);i++)                 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
    }  
}
过程试讲性能监视说明,sqrt占用的时间最多。P3将sqrt函数移到for循环之外,
#include<stdio.h>
#include<math.h>
int root(int n )
{
    return (int) sqrt((float)n);       5456
}

int prime(int n)
{
    int i,bound;
    bound =root(n);
    for(i =2;i<bound;i++)                 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<stdio.h>
#include<math.h>

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 把费时的开方,换成了乘法

				
时间: 2024-11-03 18:26:23

编程珠玑(续) 读书笔记 -(前言+第一章性能监视工具)的相关文章

iOS开发中的那些的约定俗成(1)————《编写高质量iOS与OS X代码的52个有效方法》读书笔记(第一章)

iOS开发中的那些的约定俗成(1) ----<编写高质量iOS与OS X代码的52个有效方法>读书笔记(第一章) 前言 "我要成为一个高产的开发人员.""想要混的好,就得多努力." 写这些东西是因为毕竟看了书,但是看书看过去之后,也许印象不是很深刻,有些东西现在也理解不了,那我就把我理解的,现在就可以用到的东西,简单的写出来就好,让自己今后看到就能明白其中的意思. 还有就是锻炼一下表达,编辑能力,慢慢的提升自己,随时随地的都要有一个锻炼的心. 最后当然就

&lt;&lt;什么是数学&gt;&gt; 读书笔记 第一章

<<什么是数学>> 读书笔记 第一章 如果你打开了这个web page,请忘记所有所学的数学知识,从零开始? 不!不止从0开始,把自己当做一个baby重新审视这个世界.看看伟大的数学家都做了神马 -------------------------------------------------------------------------------------------------------------------------- 数值的表示和计算 自然数或是正整数的数学理论

&lt;java并发编程的艺术&gt;读书笔记-第三章java内存模型(一)

一概述 本文属于<java并发编程的艺术>读书笔记系列,继续第三章java内存模型. 二重排序 2.1数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个位置. 写后写 a = 1;a = 2; 写一个变量之后,再写这个变量. 读后写 a = b;b = 1; 读一个变量之后,再写这个变量. 上面三种情况,只要重排序两个操作的执行顺序,

【vue.js权威指南】读书笔记(第一章)

最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.js不是一个框架-它只聚焦视图层,是一个用来构建数据驱动的Web界面的库.Vue.js通过简单的API来提供高校的数据绑定和灵活的组件系统 vue.js的特性 轻量级:体积非常小,而且不依赖其他基础库 数据绑定:对于一些富交互,状态机类似的前端UI界面,数据绑定非常简单,方便 指令:类似与AJ,可以使用v-*的

JavaScript权威指南读书笔记【第一章】

第一章 JavaScript概述 前端三大技能: HTML: 描述网页内容 CSS: 描述网页样式 JavaScript: 描述网页行为 特点:动态.弱类型.适合面向对象和函数式编程的风格 语法源自Java 一等函数来自Scheme 基于原型的继承来自于Self 名字和版本: JavaScript是由网景(Netscape)公司创建,“JavaScript”是Sun MicroSystem公司的注册商标,用来特指网景(Mozilla)对着门的实现. ECMAScript: 网景将这么语言作为标准

C#本质论读书笔记:第一章 C#概述|第二章 数据类型

第一章 1.字符串是不可变的:所有string类型的数据,都不可变,也可以说是不可修改的,不能修改变量最初引用的数据,只能对其重新赋值,让其指向内存中的一个新位置. 第二章 2.1 预定义类型或基本类型: C#语言的基本类型包括8种整数类型,2种用于科学计算的二级制浮点类型,1种用于金融计算的十进制浮点类型,1种布尔类型以及一种字符类型. 2.1.1 整数类型: 要注意int32的范围,如果是要保存10位以上的数字编号的时候,要么使用string,要么使用int64,因为int32只能保存到10

《HTTP权威指南》读书笔记(第一章~第三章)

第一章 HTTP概述 超文本传输协议 HTTP(HyperText Transfer Protocol) Web服务器使用HTTP协议,通常也称HTTP服务器.Web服务器是Web资源(Web resource)的宿主.最简单的Web资源就是Web服务器文件系统中的静态文件.这些文件可包括任意内容:文本.HTML.图片.视频等等.Web服务器会为所有HTTP对象数据附加一个MIME类型的数据格式标签.(Multipurpose Internet Mail Extension 多用途因特网邮件扩展

CSS那些事读书笔记:第一章

第一章: 1.学习CSS,最好的方法就是不断地做不断的想,不断的实践. 2.CSS语法结构主要由两部分组成:选择符和声明. 3.CSS中对于颜色的表现形式有四种 十六进制形式,如:p{color:#FF00FF}; RGB函数形式,如:p{color:RGB(135,0,224)}; 0%~100%之间的数字,数字一定是整数,如p{RGB(25%,0%,100%)}; 颜色名称,如p{color:red}; 用户系统色盘值,如,background windowtext,如:p{color:wi

《TCP/IP详解 卷1:协议》读书笔记(第一章 概述 &amp; 第二章 链路层)

第一章 概述 TCP/IP协议族:四层协议系统 链路层(数据链路层.网络接口层)设备驱动程序和网络接口卡. 网络层(互联网层)处理分组在网络中的活动,点对点服务.IP.ICMP.IGMP 运输层提供端对端通信.TCP.UDP 应用层处理应用程序细节.Telnet.FTP.SMTP.SNMP 部分概念 构造互联网最简单的方法是把两个或多个网络通过路由器(Router)进行连接.路由器的好处是为不同类型的物理网络提供连接:以太网.令牌环网.点对点的链接等等. 网络层IP协议提供的是一种不可靠的服务.