• 最后更新 2024-05-01
  • 销量/好评 0 + 评论
  • 交易规则(重要)

数据结构与算法之美 王争(@小争哥)全彩印刷 算法数据分析算法导论剑指offer深度机器学习计算机网络电脑
本站优惠价
74.00
10.0折 原价:¥74.00
  • 销量
  • 卖家
  • 0+
  • 东润堂图书专营店

服务由"东润堂图书专营店"发货,并提供售后服务。

    担保交易,安全保证,有问题不解决可申请退款。购买前请询问清楚卖家,以卖家承诺为准! 自动发货商品,随时可以购买,付款后在订单详情下载,零等待。 不同会员等级尊享不同购买折扣。
天猫优惠券

天猫优惠券

已缴纳保证金

该商家已加入保障计划

数据结构与算法之美 王争(@小争哥)全彩印刷 算法数据分析算法导论剑指offer深度机器学习计算机网络电脑商品名称:数据结构与算法之美(全彩印刷)(彩印)开本:作者:王争(@小争哥)页数:定价:119.8出版时间:2021-05-26ISBN号: 印刷时间:2021-06-01出版社:人民邮电版次:1商品类型:图书印次:1 内容提要:内 容 提 要 本书结合实际应用场景讲解数据结构和算法,涵盖常用、常考的数据结构和算法的原理讲解、代码实现和应用场景等。
    本书分为11章。第1章介绍复杂度分析方法。第2章介绍数组、链表、栈和队列这些基础的线性表数据结构。第3章介绍递归编程技巧、8种经典排序、二分查找及二分查找的变体问题。第4章介绍哈希表、位图、哈希算法和布隆过滤器。第5章介绍树相关的数据结构,包括二叉树、二叉查找树、平衡二叉查找树、递归树和B+树。第6章介绍堆,以及堆的各种应用,包括堆排序、优先级队列、求Top K、求中位数和求百分位数。第7章介绍跳表、并查集、线段树和树状数组这些比较 的数据结构。第8章介绍字符串匹配算法,包括BF算法、RK算法、BM算法、KMP算法、Trie树和AC自动机。第9章介绍图及相关算法,包括深度优先搜索、广度优先搜索、拓扑排序、Dijkstra算法、Floyd算法、A*算法、 小生成树算法、 流算法和 二分匹配等。 0章介绍4种算法思想,包括贪心、分治、回溯和动态规划。 1章介绍4个经典项目中的数据结构和算法的应用,包括Redis、搜索引擎、鉴权限流和短网址服务。另外,附录A为书中的思考题的解答。
    尽管本书的大部分代码采用Java语言编写,但本书讲解的知识与具体编程语言无关,因此,本书不但适合各种类型的研发工程师,而且可以作为高校计算机相关专业师生的学习用书和培训学校的教材。

......

精 彩 页:

......

作者简介:王争,前Google工程师,微信公众号【小争哥】作者,GitHub上算法教程Star数排名前列。热衷分享,致力于通俗易懂地讲解数据结构和算法,帮助广大程序员攻克算法学习、算法刷题、算法面试三项难关。

......

目录:目录
第1章 复杂度分析 1
1.1 复杂度分析(上):如何分析代码的执行效率和资源消耗 2
1.1.1 复杂度分析的意义 2
1.1.2 大O复杂度表示法 2
1.1.3 时间复杂度分析方法 4
1.1.4 几种常见的时间复杂度量级 5
1.1.5 空间复杂度分析方法 7
1.1.6 内容小结 7
1.1.7 思考题 8
1.2 复杂度分析(下):详解 、 坏、平均、均摊这4种时间复杂度 8
1.2.1  时间复杂度和 坏时间复杂度 8
1.2.2 平均时间复杂度 9
1.2.3 均摊时间复杂度 10
1.2.4 内容小结 11
1.2.5 思考题 12

第2章 数组、链表、栈和队列 13
2.1 数组(上):为什么数组的下标一般从0开始编号 14
2.1.1 数组的定义 14
2.1.2 寻址公式和随机访问特性 15
2.1.3 低效的插入和删除操作 15
2.1.4 警惕数组访问越界问题 16
2.1.5 容器能否 替代数组 17
2.1.6 解答本节开篇问题 18
2.1.7 内容小结 18
2.1.8 思考题 18
2.2 数组(下):数据结构中的数组和编程语言中的数组的区别 19
2.2.1 C/C++中数组的实现方式 19
2.2.2 Java中数组的实现方式 20
2.2.3 JavaScript中数组的实现方式 22
2.2.4 内容小结 23
2.2.5 思考题 23
2.3 链表(上):如何基于链表实现LRU缓存淘汰算法 23
2.3.1 链表的底层存储结构 24
2.3.2 链表的定义和操作 24
2.3.3 链表的变形结构 26
2.3.4 链表与数组的性能对比 28
2.3.5 解答本节开篇问题 29
2.3.6 内容小结 29
2.3.7 思考题 30
2.4 链表(下):借助哪些技巧可以轻松地编写链表相关的复杂代码 30
2.4.1 技巧1:理解指针或引用的含义 30
2.4.2 技巧2:警惕指针丢失和内存泄露 30
2.4.3 技巧3:利用“哨兵”简化代码 31
2.4.4 技巧4:留意边界条件和特殊情况 33
2.4.5 技巧5:举例画图,辅助思考 34
2.4.6 技巧6:多写多练,没有捷径 34
2.4.7 内容小结 34
2.4.8 思考题 35
2.5 栈:如何实现浏览器的前进和后退功能 35
2.5.1 栈的定义 35
2.5.2 顺序栈和链式栈 35
2.5.3 支持动态扩容的顺序栈 36
2.5.4 栈在函数调用中的应用 37
2.5.5 栈在表达式求值中的应用 38
2.5.6 栈在括号匹配中的应用 38
2.5.7 解答本节开篇问题 39
2.5.8 内容小结 40
2.5.9 思考题 40
2.6 队列:如何实现线程池等有限资源池的请求排队功能 40
2.6.1 队列的定义 40
2.6.2 顺序队列和链式队列 41
2.6.3 循环队列 42
2.6.4 阻塞队列和并发队列 44
2.6.5 解答本节开篇问题 44
2.6.6 内容小结 45
2.6.7 思考题 45

第3章 递归、排序、二分查找 46
3.1 递归:如何用3行代码找到“ 终 人” 47
3.1.1 什么是递归 47
3.1.2 递归需要满足的3个条件 48
3.1.3 如何编写递归代码 48
3.1.4 编写递归代码的难点 49
3.1.5 警惕递归代码出现堆栈溢出 49
3.1.6 警惕递归代码的重复计算问题 50
3.1.7 将递归代码改写为非递归代码 51
3.1.8 解答本节开篇问题 52
3.1.9 内容小结 52
3.1.10 思考题 52
3.2 尾递归:如何借助尾递归避免递归过深导致的堆栈溢出 53
3.2.1 递归产生堆栈溢出的原因 53
3.2.2 什么样的递归代码可以改写为尾递归 54
3.2.3 尾递归真的可以避免堆栈溢出吗 54
3.2.4 思考题 55
3.3 排序算法基础:从哪几个方面分析排序算法 55
3.3.1 排序算法的执行效率 55
3.3.2 排序算法的内存消耗 56
3.3.3 排序算法的稳定性 56
3.3.4 内容小结 57
3.3.5 思考题 57
3.4 O(n2)排序:为什么插入排序比冒泡排序 受欢迎 58
3.4.1 冒泡排序 58
3.4.2 插入排序 60
3.4.3 选择排序 62
3.4.4 解答本节开篇问题 63
3.4.5 内容小结 64
3.4.6 思考题 64
3.5 O(nlogn)排序:如何借助快速排序思想快速查找第K大元素 64
3.5.1 归并排序的原理和实现 64
3.5.2 归并排序的性能分析 66
3.5.3 快速排序的原理和实现 68
3.5.4 快速排序的性能分析 70
3.5.5 解答本节开篇问题 71
3.5.6 内容小结 72
3.5.7 思考题 72
3.6 线性排序:如何根据年龄给100万个用户排序 72
3.6.1 桶排序 73
3.6.2 计数排序 74
3.6.3 基数排序 76
3.6.4 解答本节开篇问题 77
3.6.5 内容小结 77
3.6.6 思考题 77
3.7 排序优化:如何实现一个高性能的通用的排序函数 78
3.7.1 如何选择合适的排序算法 78
3.7.2 如何优化快速排序 79
3.7.3 排序函数举例分析 79
3.7.4 内容小结 80
3.7.5 思考题 80
3.8 二分查找:如何用 省内存的方式实现快速查找功能 80
3.8.1 无处不在的二分思想 81
3.8.2 O(logn)惊人的查找速度 82
3.8.3 二分查找的递归与非递归实现 82
3.8.4 二分查找应用场景的局限性 83
3.8.5 解答本节开篇问题 84
3.8.6 内容小结 85
3.8.7 思考题 85
3.9 二分查找的变体:如何快速定位IP地址对应的归属地 85
3.9.1 什么是二分查找变体问题 86
3.9.2 变体问题1:查找 个值等于给定值的元素 86
3.9.3 变体问题2:查找 一个值等于给定值的元素 88
3.9.4 变体问题3:查找 个值大于或等于给定值的元素 88
3.9.5 变体问题4:查找 一个值小于或等于给定值的元素 89
3.9.6 解答本节开篇问题 89
3.9.7 内容小结 90
3.9.8 思考题 90

第4章 哈希表、位图和哈希算法 91
4.1 哈希表(上):Word软件的单词拼写检查功能是如何实现的 92
4.1.1 哈希思想 92
4.1.2 哈希函数 93
4.1.3 哈希冲突 93
4.1.4 解答本节开篇问题 95
4.1.5 内容小结 95
4.1.6 思考题 96
4.2 哈希表(中):如何打造一个工业级的哈希表 96
4.2.1 设计哈希函数 96
4.2.2 解决装载因子过大的问题 97
4.2.3 避免低效的扩容 98
4.2.4 选择合适的冲突解决方法 99
4.2.5 工业级的哈希表举例分析 100
4.2.6 解答本节开篇问题 100
4.2.7 内容小结 101
4.2.8 思考题 101
4.3 哈希表(下):如何利用哈希表优化LRU缓存淘汰算法 101
4.3.1 LRU缓存淘汰算法 102
4.3.2 Java LinkedHashMap 104
4.3.3 内容小结 105
4.3.4 思考题 105
4.4 位图:如何实现网页“爬虫”中的网址链接去重功能 106
4.4.1 基于哈希表的解决方案 106
4.4.2 基于位图的解决方案 106
4.4.3 基于

......

  • 商品评价
  • 交易规则


  • 发货方式


  • 自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。

    手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。


  • 退款说明


  • 1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);

  • 2、营销推广:未达到卖家描述标准的;

    3、点卡软件所售点卡软件无法使用的;

  • 3、发货:手动发货商品,在卖家未发货前就申请了退款的;

    4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)

    5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。

  • 注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!


  • 注意事项


  • 1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);

    2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);

  • 3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

  • 4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);

    5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;

    6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。


  • 送码声明


  • 1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;

  • 2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。


热门推荐
浏览记录