`

【编程珠玑】第九章 代码调优

 
阅读更多

一,概述

1)代码调优的目的是什么?

减少CPU运行时间;减少分页或增加高速缓存命中率;减少程序所需空间

2)代码调优为什么不能“滥用”?

1>效率的角色:不成熟的优化是大量编程灾害的根源,可能危及程序正确性、功能及可维护性。

2>度量工具:利用性能检测工具,找到“热点”代码,即程序关键区域,然后优化。

3>设计层面:效率问题可以从多个方面进行解决(算法和数据结构、数据结构重组、硬件升级),只有没有更好的解决方案才进行代码优化。

4>双刃剑:有些优化在特定程序中可以提速,但在另外程序中有可能急剧减速。

3)急救方案集锦

1>整数取模(取模运算时间大于加减法执行时间)

k=k%n;

可以替换为

if(k>=n) k=k-n;

2>函数、宏、和内联代码

内联函数和宏具体参见博客http://blog.csdn.net/tianshuai11/article/details/7569659

3>顺序搜索

采用“哨兵” 让循环体不用 每次都判断边界。从而增加了运行速度

将循环展开,替换自增。


替换为


4>计算球面距离

4)大手术---二分搜索

二,习题

3)while 语句的开销 大于 if语句

4)宏 不适合用于递归函数中

5)不排序 进行二分查找,如果找到则肯定存在。找不到也不一定 不存在。

6) isdigit(char c) {if(c>='0' && c<='9'}

例子

7)给定一个非常长的字节序列(假设有十亿或万亿),如何高效的统计1的个数

题意:快速计算整数的二进制表示法中1的个数

分析:转换为二进制然后一个一个求,是不现实的做法。蛮干不是我们想要的结果。


方法一:(算法的时间复杂度就是1的个数)


方法二:



8)在程序中如何使用哨兵找出数组中的最大元素



分享到:
评论

相关推荐

    编程珠玑源码下载编程珠玑书后源代码

    "源代码" 文件通常包含C、C++、Java或其他编程语言编写的程序,这些程序是为了实现《编程珠玑》书中提到的各种算法和数据结构。源代码的学习对于理解书中的概念至关重要,因为它们提供了实际操作的例子,读者可以...

    编程珠玑 第2版(修订版)_编程珠玑修订_资料_

    《编程珠玑》一书将这些技巧和经验整理成章,涵盖了算法、数据结构、性能优化、代码质量等多个方面,是程序员自我提升的重要参考资料。书中强调的问题求解策略和程序设计思想,对于初学者和资深开发者都有很大的启发...

    编程珠玑源代码

    在《编程珠玑》的源代码中,我们可以找到书中各个章节讨论的算法实例,如排序、搜索、数据压缩等经典问题的解决方案。这些源代码提供了动手实践的机会,帮助读者更好地理解和应用所学知识。 1. **排序算法**:书中...

    编程珠玑 编程珠玑 编程珠玑 编程

    《编程珠玑》是一本经典的计算机科学与编程书籍,作者是Jon Bentley。这本书以其独特的视角深入探讨了程序设计的...阅读并实践《编程珠玑》中的知识,能够让你在编程的世界里更加游刃有余,创作出更优雅、高效的代码。

    编程珠玑 Programming Pearls 第二版(中文版+源代码)

    7. **代码可读性和可维护性**:《编程珠玑》倡导编写清晰、简洁的代码,以增强代码的可读性和可维护性。这包括了良好的注释习惯、代码组织结构以及模块化设计的原则。 8. **软件工程实践**:书中还涵盖了软件工程的...

    《编程珠玑》源代码

    《编程珠玑》第一版是我早期职业生涯中阅读过的对我影响较大的书籍之一,在书中首次接触到的很多观点都让我长期受益。作者在这一版本中做了重要更新。新增加的很多例子让我耳目一新。 ——Steve McConnell,《代码...

    编程珠玑pdf+源代码

    《编程珠玑》是计算机科学领域的一本经典著作,作者是Jon Bentley,它以其独特的角度深入探讨了程序设计的艺术和技巧。这本书的核心理念是通过解决实际的编程问题,引导读者理解如何有效地处理和操纵数据,以及如何...

    编程珠玑.pdf

    第9章 小语言 75 9.1 Pic语言 76 9.2 视角 79 9.3 Pic预处理器 81 9.4 用来实现Pic的小语言 83 9.5 原理 87 9.6 习题 88 9.7 深入阅读 89 第10章 文档设计 91 10.1 表格 92 10.2 三条设计原则 94 10.3 插图 94 10.4 ...

    编程珠玑 第二版 源代码

    《编程珠玑》第二版是计算机科学领域的一本经典著作,由Jon Bentley撰写,它以其深入浅出的方式探讨了程序设计中的诸多问题和解决方案。这本书不仅涵盖了算法和数据结构,还涉及了软件工程的实践与智慧,对于程序员...

    编程珠玑第二版及源代码

    编程珠玑第二版及源代码实现(C/C++) 如果让程序员们列举他们喜欢的书籍,Jon Bentley的《编程珠玑》一定可以归于经典之列。如同精美的珍珠出自饱受沙砾折磨的牡蛎,程序员们的精彩设计也来源于曾经折磨他们的实际...

    《编程珠玑》部分源代码Java实现

    总的来说,《编程珠玑》的Java实现源代码是一个宝贵的教育资源,它将理论知识与实际代码相结合,是提升编程思维和实战能力的理想资料。通过深入研究这些代码,你将不仅能够解决书中的问题,还能将这些智慧应用到自己...

    编程珠玑 第二版 修订版

    第9章 代码调优 83 9.1 典型的故事 83 9.2 急救方案集锦 84 9.3 大手术——二分搜索 88 9.4 原理 91 9.5 习题 92 9.6 深入阅读 94 第10章 节省空间 95 10.1 关键在于简单 95 10.2 示例问题 96 10.3 数据...

    编程珠玑(续)

    《编程珠玑(续)》是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容组成一个有机的整体,...

    编程珠玑 编程珠玑续

    《编程珠玑》和其续篇是两部深受程序员喜爱的经典著作,主要涵盖了程序设计、算法分析和数据结构等核心编程领域。这两本书以其深入浅出的讲解方式和丰富的实例,帮助读者提升编程技巧和解决问题的能力。 在《编程...

    编程珠玑 中英文 第2版(含源代码)

    《编程珠玑》是计算机科学领域的一本经典著作,作者是Jon Bentley。这本书以其独特的视角,深入浅出地探讨了程序设计中的一些核心问题,并提供了许多实用的解决方案。第二版中,作者不仅保留了原书的精华,还更新了...

    《编程珠玑》第2版中文PDF+源代码

    2. **编程艺术**:《编程珠玑》强调了编写高效、可读和可维护代码的重要性。书中讨论了如何通过代码重构和模块化设计提升代码质量,以及如何通过测试和调试确保代码的正确性。 3. **磁盘I/O优化**:在第二版中,...

    编程珠玑及其源码

    编程珠玑,编程珠玑续以及源码,本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨...

    编程珠玑第2版源代码

    该压缩包文件包含了《编程珠玑第2版》的部分源代码和相关文档,这些源代码和文档可能对应书中的各个章节或专栏。以下是对每个文件名称的详细解读: 1. **Readme.txt**:这是一个标准的文本文件,通常包含有关压缩包...

Global site tag (gtag.js) - Google Analytics