王朝网络
分享
 
 
 

程序员实用算法(华章程序员书库)(Practical Algorithms for Programmers)

王朝导购·作者佚名
 
程序员实用算法(华章程序员书库)(Practical Algorithms for Programmers)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  参考价格: 点此进入淘宝搜索页搜索
  分类: 图书,计算机与互联网,程序语言与软件开发,算法与数据结构,
  品牌: Andrew Binstock

基本信息·出版社:机械工业出版社

·页码:437 页

·出版日期:2009年09月

·ISBN:711127296X/9787111272960

·条形码:9787111272960

·包装版本:第1版

·装帧:平装

·开本:16

·正文语种:中文

·丛书名:华章程序员书库

·外文书名:Practical Algorithms for Programmers

产品信息有问题吗?请帮我们更新产品信息。

内容简介《程序员实用算法》重点关注的是实用、立即可用的代码,并且广泛讨论了可移植性和特定于实现的细节。《程序员实用算法》作者介绍了一些有用但很少被讨论的算法,它们可用于语音查找、日期和时间例程(直到公元1年)、B树和索引文件、数据压缩、任意精度的算术、校验和与数据验证,并且还最全面地介绍了查找例程、排序算法和数据结构。

《程序员实用算法》结构清晰,示例丰富,可作为广大程序员的参考用书。

作者简介Andrew Binstock,是《UNIX Review》的主编和《C Gazette》的创刊编辑。他是《HP LaserJet Programming》(Addison-Wesley,1991)的第一作者。

John Rex,是一位计算机顾问,专攻C和C++。他是《C Gazette》的前任技术编辑,并且为许多杂志撰写文章。

编辑推荐如今大多数关于算法的图书都是大学教科书,或者是令人厌倦的相同算法集合改头换面后的作品。《程序员实用算法》是给出所有算法的完整代码实现的第一《程序员实用算法》,这些算法在开发人员的日常工作中非常有用。

《程序员实用算法》重点关注的是实用,立即可用的代码,并且广泛讨论了可移植性和特定于实现的细节。《程序员实用算法》作者介绍了一些有用但很少被讨论的算法,它们可用于语音查找。日期和时间例程(直到公元1年)、B树和索引文件、数据压缩、任意精度的算术,校验和与数据验证,并且全面地介绍了查找例程、排序算法和数据结构。

《程序员实用算法》只要求读者具有C语言的初级知识以及基本代数的相关知识。源代码经过测试符合ANSI标准,可以运行在UNIX下,以及Borland、Microsoft和Watcom的编译器上。

目录

译者序

前言

致谢

第1章 绪论

1.1 评估算法

1.2 修改算法

1.2.1 主要的优化:I/O

1.2.2 主要的优化:函数调用

1.3 资源和参考资料

第2章 基本数据结构

2.1 链表

2.1.1 双向链表

2.1.2 链表的其他特征

2.2 栈和队列

2.2.1 栈的特征

2.2.2 队列的特征

第3章 散列

3.1 散列的概念

3.2 散列函数

3.3 冲突解决方法

3.3.1 线性再散列法

3.3.2 非线性再散列法

3.3.3 外部拉链法

3.4 性能问题

3.5 资源和参考资料

第4章 查找

4.1 查找的特征

4.1.1 准备时间

4.1.2 运行时间

4.1.3 回溯的需要

4.2 蛮力查找

4.3 BoyerMoore查找

4.3.1 启发式方法#1:跳过字符

4.3.2 启发式方法#2:重复模式

4.4 多字符串查找

4.5 用于正则表达式的字符串查找:grep

4.6 近似字符串匹配技术

4.7 语音比较:Soundex算法

4.8 Metaphone:现代的Soundex

4.9 选择技术

4.10 资源和参考资料

4.10.1 通用参考资料

4.10.2 BoyerMoore

4.10.3 多字符串查找

4.10.4 正则表达式查找

4.10.5 近似字符串匹配

4.10.6 Soundex算法和Metaphone算法

第5章 排序

5.1 排序的基本特征

5.1.1 稳定性

5.1.2 对哨兵的需求

5.1.3 对链表进行排序的能力

5.1.4 输入的阶的相关性

5.1.5 对额外存储空间的需求

5.1.6 内部排序技术与外部排序技术

5.2 排序模型

5.2.1 冒泡排序

5.2.2 插入排序

5.2.3 希尔排序

5.2.4 快速排序

5.2.5 堆排序

5.3 对链表进行插入排序

5.4 对链表进行快速排序

5.5 对多个键进行排序——不稳定排序的修正方法

5.6 网络排序

5.7 小结:选择一种排序算法

5.8 资源和参考资料

第6章 树

6.1 二叉树

6.1.1 树查找

6.1.2 节点插入

6.1.3 节点删除

6.1.4 二叉查找树的性能

6.1.5 AVL树

6.2 红黑树

6.3 伸展树

6.4 B树

6.4.1 保持B树平衡

6.4.2 实现B树算法

6.4.3 B树实现的代码

6.5 可以看见森林吗

6.6 资源和参考资料

第7章 日期和时间

7.1 日期例程的库

7.2 时间例程

7.3 用于日期和时间数据的格式

7.4 最后的提醒

7.5 资源和参考资料

第8章 任意精度的算术

8.1 构建计算器8.2表示数字

8.3 计算

8.4 加法

8.5 减法

8.6 乘法

8.7 除法

8.8 关于计算器要注意的最后几点

8.9 用于计算平方根的牛顿算法

8.10 分期付款表

8.11 资源和参考资料

第9章 数据压缩

9.1 行程编码

9.2 霍夫曼压缩

9.2.1 代码

9.2.2 其他问题

9.3 滑动窗口压缩

9.4 基于字典的压缩(LZW)

9.4.1 LZW算法的伪代码

9.4.2 LZW压缩的实现

9.4.3 填满字典

9.5 使用哪种压缩方法

9.6 资源和参考资料

第10章 数据完整性和验证

10.1 简单的校验和

10.2 加权校验和

10.3 循环冗余校验

10.3.1 CRC-CCITT

10.3.2 CRC-16

10.3.3 CRC-32

10.4 资源和参考资料

……[看更多目录]

序言数据结构与算法是计算机专业的核心课程,是计算机软件开发和应用人员必备的专业基础。今天的大多数关于算法的图书都是大学教科书,或者是令人厌倦的相同算法集合改头换面后的作品。本书是给出所有算法的完整代码实现的第一本书,这些算法对于开发人员在其日常工作中是有用的。

本书介绍了关于算法的基础知识、基本数据结构、散列、查找、排序、树、日期和时间、任意精度的算术运算、数据压缩以及数据完整性和验证等内容。本书的目的是为在应用程序中使用的算法提供一个实用的纲要。与关于算法的大多数著作不同的是,本书不是一本教材:书中没有提供实现细节,把它作为练习留给读者完成;也没有利用较小的代码段对算法进行高度理论化的讨论,以说明如何进行实现。相反,本书完全用c语言实现了各种算法,并且讨论了如何在各种应用程序中最佳地使用它们。

本书只要求读者具有c语言的初级知识以及不超出基本代数之外的数学知识。源代码是符合ANSI标准的,并且对它们进行了测试,它们都可以运行在UNIX下以及Borland、Microsoft和Watcom的编译器上。

本书非常适合于高等院校计算机专业的学生阅读,对于从事计算机软件开发的人员,也将从本书中受益匪浅。

参加本书翻译的人员有:陈宗斌、张景友、易小丽、陈婷、管学岗、王新彦、金惠敏、张海峰、徐晔、戴锋。

由于时间紧迫,加之译者水平有限,错误在所难免,恳请广大读者批评指正。

文摘插图:

程序员实用算法(华章程序员书库)(Practical Algorithms for Programmers)

第1章 绪论

1.1 评估算法

除了最直观的应用之外,算法是所有程序的核心和灵魂。算法一般被设计用于以最小的代价高效地解决特定的问题。算法的价值一般取决于两方面因素:如何恰当地解决问题以及如何高效地实现解决方案。这些是算法分析的定性和定量方面。

对于许多算法,质量不是一个问题。例如,对于排序算法,必须保证每次都对所有元素正确地进行了排序。一旦出错,就必须丢弃它并且严格说来不能将其视为一种算法。在其他领域,不能基于这种简单的通过/失败测试来度量质量。例如,在第4章中介绍的Soundex算法允许检索听起来相同的单词或名字。与排序算法不同,可以调整Soundex算法,以寻找接近的匹配或者相当宽泛的匹配;这取决于实现算法的方式和开发人员的需求。在这种情况下,质量是可度量的并且是算法的重要方面,并且指导我们认真选择不同的解决方案。

算法设计的定量方面尝试确定算法所需的资源。一般来说,最重要的度量标准是时间:即算法运行得有多快?偶尔,计算机资源(比如可用的内存)也是一个重要因素。度量性能

与基准的性能不同,算法的性能很少依据时间来加以说明。在论及排序例程时,你几乎从未听到它完成排序要花费8.62秒这样的说明。这有一个很好的理由:这种计时难以复制,并且通常依赖于正在处理的数据的具体特征。算法不依赖于计时,而是依赖于一个直观的方程,以显示输入的大小与性能之间的关系。用于显示这种关系的传统方法是使用符号D,称为大O表示法(big.oh notation)。其工作方式是:假定你有一个算法,它简单地通读一个文本文件,从中查找单词flea。一种合理的方法是寻找字母f的每个实例(参见第4章)。当找到一个f,该算法就测试4个字母的序列,看看它是不是单词flea。在这个示例中,显然执行时间直接与文本文件的大小成正比。如果给定的文件包含Ⅳ个字符,那么我们就说该算法的执行时间的界限是O(N)。你会注意到这种表述没有考虑到可能影响性能的其他因素——例如,字母f在文本中出现的频繁程度。在查找字符串时(比如fleas rarely wear collars),字符串的长度以及其中相似字符串(比如fleasrarely weal"colors)出现的频率也会影响性能。不过,严格来讲,这些因素是要处理的数据的函数,而不是算法的函数。因此,在大O表示法中,它们不会出现在公式中。该表示法只是简单地说明数据规模(一般用Ⅳ表示,偶尔也用n表示)与算

……[看更多书摘]

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
更多商品
GUCCI古驰女款太阳眼镜(GG1604/S 18LX1)
时尚cosmo(2009年9月)
现代网络新技术概论(现代通信网络技术丛书)
会声会影X2标准培训教程(附DVD光盘1张)
Adobe Photoshop CS4中文版经典教程(附CD光盘1张)
企业精简架构(走出软件百慕大)
Google Apps应用完全指南(Google 核心技术丛书)
十万个为什么(4)(哈利熊知识百科漫画系列丛书)
十万个为什么(2)(哈利熊知识百科漫画系列丛书)
英语听说教程2拓展(2磁带)
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有