《程序员实用算法》源代码

《程序员实用算法》源代码

  • 大小:1.62 MB
  • 类型:算法
  • 格式:PDF
  • 出版:机械工业出版社
  • 作者:Andrew、Binstock;、John、Rex
  • 更新:2022-09-08 09:33:40
vip 立即下载( 1.62 MB )
关注公众号免费下载
版权投诉 / 资源反馈(本资源由用户 连陶宜 投稿)

本站收集了一篇算法类书籍配套资源,介绍了关于程序员、程序员算法、源代码、算法方面的内容,本书是由机械工业出版社出版,已被901人关注,由茹翠曼测试纠错,目前本书在算法类综合评分为:7.7分。

算法资源推荐

资源介绍

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

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

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

本书只要求读者具有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3BoyerMoore查找
  • 431启发式方法#1:跳过字符
  • 432启发式方法#2:重复模式
  • 44多字符串查找
  • 45用于正则表达式的字符串
  • 查找:grep
  • 46近似字符串匹配技术
  • 47语音比较:Soundex算法
  • 48Metaphone:现代的Soundex
  • 49选择技术
  • 410资源和参考资料
  • 4101通用参考资料
  • 4102BoyerMoore
  • 4103多字符串查找
  • 4104正则表达式查找
  • 4105近似字符串匹配
  • 4106Soundex算法和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5AVL树
  • 62红黑树
  • 63伸展树
  • 64B树
  • 641保持B树平衡
  • 642实现B树算法
  • 643B树实现的代码
  • 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1LZW算法的伪代码
  • 942LZW压缩的实现
  • 943填满字典
  • 95使用哪种压缩方法
  • 96资源和参考资料
  • 第10章数据完整性和验证
  • 101简单的校验和
  • 102加权校验和
  • 103循环冗余校验
  • 1031CRCCCITT
  • 1032CRC16
  • 1033CRC32
  • 104资源和参考资料

以上就是本次关于配套资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

算法相关资源

  • 技术领导力:程序员如何才能带团队

    技术领导力:程序员如何才能带团队

    程序员不会带团队,就只能一辈子写代码,虽然写代码并没有什么不好,但是大多数程序员不愿意这样过一生。 程序员要带团队,要成为技术团队的领导者,必须在技术和管理两个方面有所长

    大小:130 MB程序员电子书

  • 程序员软技能

    程序员软技能

    编辑推荐 1.专为技术人员编写的职业生涯实用指南,详细介绍沟通能力、团队合作能力、冲突处理能力、领导力等14项软技能,针对性帮助新入职或者不得意的技术人轻松走上正轨。 2.作者唐琼斯是微软MVP、成功的IT教练、会议演讲者、职业导师,他领导了10余个职业和职业研讨会的科技专业人员,具有20余年的技术人职业规划实践经验。 3.章尾设置练习建议环节,帮助读者时刻回顾与检验所学知识;设置拓展阅读环节,鼓励读者延展知识库。 内容简介

    大小:49.5 MB程序员

  • 统计思维:程序员数学之概率统计

    统计思维:程序员数学之概率统计

    编辑推荐 推荐组合购买: 大数据革命风起云涌。数据分析成为每个浪尖上的舞者的必杀技。而统计思维是数据分析和数据挖掘的根基。 每个程序员都应该具备统计思维,看到本书你已经比别人先行一步。这是一本极为独特的统计思维入门图书。 独特的编程视角。对于主要的概率统计概念,作者都给出了开源的代码示例,其新颖独特的讲解方法可以让程序员对概率统计产生更深刻的认识。 幽默风趣的示例。你是否一直无法理解蒙提霍尔问题?庞加莱是

    大小:10.2 MB程序员数学电子书

  • C/C++实践进阶之道:写给程序员看的编程书

    C/C++实践进阶之道:写给程序员看的编程书

    本书是一本C/C 语言应用能力进阶的图书,包含99个经典实例与综合案例的透彻解析,具有很高的实用性和可读性,对于初级程序员和学习编程语言的大学生大有裨益

    大小:281.7 MB编程设计电子书

  • Go程序员面试算法宝典

    Go程序员面试算法宝典

    大小:122914 MB Go语言

  • 程序员代码面试指南:IT名企算法与数据结构题目最优解

    程序员代码面试指南:IT名企算法与数据结构题目最优解

    大小:3010 MB MB程序员面试

  • 王道程序员求职宝典

    王道程序员求职宝典

    这书选萃了很多大型企业的程序员笔试题目、面试问题,重中之重突显、解释详实。全书共分成四一部分,各一部分给出:首位一部分是程序设计基础及数据结构基本,探讨C/C++基本知识及其数

    大小:108.7 MB求职电子书

  • Java程序员面试宝典

    Java程序员面试宝典

    Java程序员面试宝典(第4版) 是《Java程序员面试宝典》的第4版。第4版在保留前三版数据结构、字符串处理、Java程序设计等主干内容的基础上,更新了部分程序员面试题目,内容主要取材于

    大小:78.6 MBJava面试电子书

下载地址

学习笔记

12小时16分钟前回答

Java程序员8道数据结构软件面试题

什么是数据结构? 简单地说,数据结构是以某种特定的布局方式存储数据的容器。这种“布局方式”决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的。首先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构。 为什么我们需要数据结构? 数据是计算机科学当中最关键的实体,而数据结构则可以将数据以某种组织形式存储,因此,数据结……