好玩的数学科普书店店铺主页二维码
好玩的数学科普书店 微信认证
传播数学,普及大众
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍

77.88
运费: ¥ 0.00-20.00
库存: 697 件
Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品图0
Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品图1
Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品图2
Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品图3
Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品图4
Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品缩略图0 Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品缩略图1 Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品缩略图2 Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品缩略图3 Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍 商品缩略图4

商品详情

书名:Hello算法  
定价:129.8  
ISBN:9787115637505  
作者:靳宇栋(@krahets)  
版次:第1版  
出版时间:2024-02  

内容提要:  
本书是备受广大读者推崇的数据结构与算法入门教程,已在GitHub获得*60k的 Star,并多次登顶GitHub Trending。书中系统介绍了数据结构与算法基础、复杂度分析、数组与链表、栈与队列、哈希表、树、堆、图、搜索、排序、分治、回溯、动态规划和贪心算法等核心知识,通过清晰易懂的解释和丰富的代码示例,以及生动形象的全彩插图和在线动画图解,揭示算法工作原理和数据结构底层实现,教授读者如何选择和设计算法来解决不同类型的问题,切实提升编程技能,构建完整的数据结构与算法知识体系。  



作者简介:  
靳宇栋(@krahets) 前华为*算法工程师,上海交通大学硕士,西安交通大学本科,专注于3D重建与渲染、3D生成算法的研究。曾在VEX机器人世界锦标赛拔得头筹、全球人工智能创新大赛一等奖。喜欢在开源社区分享知识,作品的GitHub Star*60,000,订阅人数*460,000。  

目录:  
序  
前言  
第 1章 初识算法 1  
1.1 算法无处不在 1  
1.2 算法是什么 5  
1.2.1 算法定义 5  
1.2.2 数据结构定义 5  
1.2.3 数据结构与算法的关系 5  
1.3 小结 7  
第 2章 复杂度分析 9  
2.1 算法效率评估 9  
2.1.1 实际测试 9  
2.1.2 理论估算 10  
2.2 迭代与递归 10  
2.2.1 迭代 11  
2.2.2 递归 13  
2.2.3 两者对比 18  
2.3 时间复杂度 19  
2.3.1 统计时间增长趋势 20  
2.3.2 函数渐近上界 21  
2.3.3 推算方法 22  
2.3.4 常见类型 23  
2.3.5 *差、*、平均时间复杂度 30  
2.4 空间复杂度 32  
2.4.1 算法相关空间 32  
2.4.2 推算方法 33  
2.4.3 常见类型 34  
2.4.4 权衡时间与空间 38  
2.5 小结 39  
第3章 数据结构 42  
3.1 数据结构分类 42  
3.1.1 逻辑结构:线性与非线性 42  
3.1.2 物理结构:连续与分散 43  
3.2 基本数据类型 45  
3.3 数字编码* 46  
3.3.1 原码、反码和补码 46  
3.3.2 浮点数编码 49  
3.4 字符编码* 50  
3.4.1 ASCII字符集 50  
3.4.2 GBK字符集 51  
3.4.3 Unicode字符集 51  
3.4.4 UTF-8编码 53  
3.4.5 编程语言的字符编码 54  
3.5 小结 55  
第4章 数组与链表 58  
4.1 数组 58  
4.1.1 数组常用操作 58  
4.1.2 数组的优点与局限性 62  
4.1.3 数组典型应用 63  
4.2 链表 63  
4.2.1 链表常用操作 64  
4.2.2 数组与链表对比 67  
4.2.3 常见链表类型 67  
4.2.4 链表典型应用 68  
4.3 列表 69  
4.3.1 列表常用操作 69  
4.3.2 列表实现 71  
4.4 内存与缓存* 73  
4.4.1 计算机存储设备 73  
4.4.2 数据结构的内存效率 75  
4.4.3 数据结构的缓存效率 75  
4.5 小结 76  
第5章 栈与队列 81  
5.1 栈 81  
5.1.1 栈的常用操作 81  
5.1.2 栈的实现 82  
5.1.3 两种实现对比 86  
5.1.4 栈的典型应用 87  
5.2 队列 87  
5.2.1 队列常用操作 88  
5.2.2 队列实现 89  
5.2.3 队列典型应用 94  
5.3 双向队列 95  
5.3.1 双向队列常用操作 95  
5.3.2 双向队列实现* 96  
5.3.3 双向队列应用 104  
5.4 小结 104  
第6章 哈希表 107  
6.1 哈希表 107  
6.1.1 哈希表常用操作 108  
6.1.2 哈希表简单实现 109  
6.1.3 哈希冲突与扩容 111  
6.2 哈希冲突 113  
6.2.1 链式地址 113  
6.2.2 开放寻址 116  
6.2.3 编程语言的选择 120  
6.3 哈希算法 120  
6.3.1 哈希算法的目标 121  
6.3.2 哈希算法的设计 122  
6.3.3 常见哈希算法 124  
6.3.4 数据结构的哈希值 124  
6.4 小结 125  
第7章 树 129  
7.1 二叉树 129  
7.1.1 二叉树常见术语 129  
7.1.2 二叉树基本操作 131  
7.1.3 常见二叉树类型 132  
7.1.4 二叉树的退化 134  
7.2 二叉树遍历 135  
7.2.1 层序遍历 135  
7.2.2 前序、中序、后序遍历 136  
7.3 二叉树数组表示 138  
7.3.1 表示*二叉树 138  
7.3.2 表示任意二叉树 139  
7.3.3 优点与局限性 142  
7.4 二叉搜索树 142  
7.4.1 二叉搜索树的操作 143  
7.4.2 二叉搜索树的效率 151  
7.4.3 二叉搜索树常见应用 151  
7.5 AVL树* 152  
7.5.1 AVL树常见术语 153  
7.5.2 AVL树旋转 154  
7.5.3 AVL树常用操作 160  
7.5.4 AVL树典型应用 161  
7.6 小结 162  
第8章 堆 165  
8.1 堆 165  
8.1.1 堆的常用操作 166  
8.1.2 堆的实现 167  
8.1.3 堆的常见应用 177  
8.2 建堆操作 177  
8.2.1 借助入堆操作实现 177  
8.2.2 通过遍历堆化实现 178  
8.2.3 复杂度分析 178  
8.3 Top-k问题 180  
8.3.1 方法一:遍历选择 180  
8.3.2 方法二:排序 180  
8.3.3 方法三:堆 181  
8.4 小结 182  
第9章 图 184  
9.1 图 184  
9.1.1 图的常见类型与术语 185  
9.1.2 图的表示 186  
9.1.3 图的常见应用 188  
9.2 图的基础操作 188  
9.2.1 基于邻接矩阵的实现 188  
9.2.2 基于邻接表的实现 192  
9.2.3 效率对比 196  
9.3 图的遍历 196  
9.3.1 广度优先遍历 196  
9.3.2 深度优先遍历 198  
9.4 小结 200  
第 10章 搜索 203  
10.1 二分查找 203  
10.1.1 区间表示方法 207  
10.1.2 优点与局限性 208  
10.2 二分查找插入点 209  
10.2.1 无重复元素的情况 209  
10.2.2 存在重复元素的情况 210  
10.3 二分查找边界 212  
10.3.1 查找左边界 212  
10.3.2 查找右边界 212  
10.4 哈希优化策略 214  
10.4.1 线性查找:以时间换空间 214  
10.4.2 哈希查找:以空间换时间 215  
10.5 重识搜索算法 217  
10.5.1 暴力搜索 217  
10.5.2 自适应搜索 218  
10.5.3 搜索方法选取 218  
10.6 小结 220  
第 11章 排序 222  
11.1 排序算法 222  
11.1.1 评价维度 222  
11.1.2 理想排序算法 223  
11.2 选择排序 224  
11.3 冒泡排序 229  
11.3.1 算法流程 231  
11.3.2 效率优化 232  
11.3.3 算法特性 233  
11.4 插入排序 233  
11.4.1 算法流程 234  
11.4.2 算法特性 235  
11.4.3 插入排序的优势 235  
11.5 快速排序 235  
11.5.1 算法流程 239  
11.5.2 算法特性 240  
11.5.3 快速排序为什么快 240  
11.5.4 基准数优化 241  
11.5.5 尾递归优化 242  
11.6 归并排序 242  
11.6.1 算法流程 243  
11.6.2 算法特性 248  
11.6.3 链表排序 248  
11.7 堆排序 249  
11.7.1 算法流程 249  
11.7.2 算法特性 250  
11.8 桶排序 250  
11.8.1 算法流程 251  
11.8.2 算法特性 252  
11.8.3 如何实现平均分配 252  
11.9 计数排序 253  
11.9.1 简单实现 254  
11.9.2 完整实现 255  
11.9.3 算法特性 256  
11.9.4 局限性 256  
11.10 基数排序 257  
11.10.1 算法流程 257  
11.10.2 算法特性 259  
11.11 小结 259  
第 12章 分治 263  
12.1 分治算法 263  
12.1.1 如何判断分治问题 264  
12.1.2 通过分治提升效率 264  
12.1.3 分治常见应用 266  
12.2 分治搜索策略 267  
12.3 构建二叉树问题 269  
12.4 汉诺塔问题 273  
12.5 小结 280  
第 13章 回溯 282  
13.1 回溯算法 282  
13.1.1 尝试与回退 283  
13.1.2 剪枝 288  
13.1.3 框架代码 289  
13.1.4 常用术语 291  
13.1.5 优点与局限性 291  
13.1.6 回溯典型例题 292  
13.2 全排列问题 292  
13.2.1 无相等元素的情况 293  
13.2.2 考虑相等元素的情况 295  
13.3 子集和问题 298  
13.3.1 无重复元素的情况 298  
13.3.2 考虑重复元素的情况 302  
13.4 n 皇后问题 304  
13.5 小结 308  
第 14章 动态规划 310  
14.1 初探动态规划 310  
14.1.1 方法一:暴力搜索 311  
14.1.2 方法二:记忆化搜索 313  
14.1.3 方法三:动态规划 314  
14.1.4 空间优化 316  
14.2 动态规划问题特性 316  
14.2.1 *子结构 316  
14.2.2 无后效性 319  
14.3 动态规划解题思路 321  
14.3.1 问题判断 321  
14.3.2 问题求解步骤 322  
14.4 0-1 背包问题 332  
14.5 完全背包问题 343  
14.5.1 完全背包问题 344  
14.5.2 *钱兑换问题 I348  
14.5.3 *钱兑换问题II 350  
14.6 编辑距离问题 352  
14.7 小结 356  
第 15章 贪心 359  
15.1 贪心算法 359  
15.1.1 贪心算法的优点与局限性 360  
15.1.2 贪心算法特性 361  
15.1.3 贪心算法解题步骤 362  
15.1.4 贪心算法典型例题 363  
15.2 分数背包问题 363  
15.3 *容量问题 366  
15.4 *切分乘积问题 373  
15.5 小结 377  
附录A 术语表 379  

好玩的数学科普书店店铺主页二维码
好玩的数学科普书店 微信公众号认证
传播数学,普及大众
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

Hello算法 数据结构算法计算机算法设计与分析算法图解编程语言程序设计书籍

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:mathfun
好玩的数学官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏