全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

Python算法设计与分析

  • 定价: ¥49.8
  • ISBN:9787115529008
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:人民邮电
  • 页数:234页
  • 作者:编者:王硕//董文...
  • 立即节省:
  • 2020-05-01 第1版
  • 2020-05-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    本书内容包括算法初步、排序算法、查找、双指针问题、哈希算法、深度优先搜索算法、广度优先搜索算法、回溯算法、动态规划、贪心算法、分治算法、并查集、最短路径算法和数论算法等常见算法。每个算法都做了深入的讲解,同时通过实例介绍了如何应用这些算法。书中算法都以Python语言进行描述。
    本书的特色在于讲解知识点的同时,辅以大量生动的例子,以更好地帮助读者深刻理解算法的原理。读者可以通过本书快速了解并掌握这些算法。
    本书适合有Python语言基础,了解基本数据结构知识,渴望深入学习算法的读者阅读。

目录

第1章  算法初步
  1.1  什么是算法
    1.1.1  算法的定义
    1.1.2  算法与程序的区别
  1.2  时间复杂度
    1.2.1  运行时间和程序复杂程度的关系
    1.2.2  时间复杂度是渐进的
    1.2.3  简单程序的时间复杂度分析
    1.2.4  时间复杂度的意义
  1.3  空间复杂度
  1.4  算法的应用
  1.5  Python算法的优势
  1.6  小结
  1.7  习题
第2章  排序算法
  2.1  初级排序算法
    2.1.1  插入排序
    2.1.2  选择排序
    2.1.3  冒泡排序
  2.2  高级排序算法
    2.2.1  归并排序
    2.2.2  快速排序
    2.2.3  希尔排序
    2.2.4  堆排序
    2.2.5  桶排序
  2.3  小结
  2.4  习题
第3章  查找
  3.1  顺序查找
  3.2  二分查找
  3.3  树
  3.4  二叉树
    3.4.1  二叉树的性质
    3.4.2  满二叉树
    3.4.3  完全二叉树
    3.4.4  创建二叉树
    3.4.5  遍历二叉树
  3.5  二叉搜索树
    3.5.1  二叉搜索树基础
    3.5.2  二叉搜索树的操作
  3.6  平衡二叉树
    3.6.1  二叉搜索树的效率
    3.6.2  AVL树
  3.7  小结
  3.8  习题
第4章  双指针问题
  4.1  单链表
    4.1.1  建立单链表
    4.1.2  遍历单链表
    4.1.3  插入单链表
    4.1.4  删除单链表第n个数
  4.2  双指针的应用
    4.2.1  数组合并问题
    4.2.2  删除单链表倒数第n个数
  4.3  小结
  4.4  习题
第5章  哈希算法
  5.1  哈希算法的原理
  5.2  哈希函数
    5.2.1  除法哈希算法
    5.2.2  乘法哈希算法
    5.2.3  平方取中法
    5.2.4  随机数哈希算法
  5.3  解决冲突
    5.3.1  开放定址法
    5.3.2  拉链址法
  5.4  哈希算法的应用
    5.4.1  两个数的和问题
    5.4.2  团体赛问题
    5.4.3  猜数字游戏
  5.5  小结
  5.6  习题
第6章  深度优先搜索算法
  6.1  搜索
  6.2  图上的深度优先搜索
    6.2.1  无向图
    6.2.2  图的术语
    6.2.3  图上的搜索
    6.2.4  经典例题讲解(最大的油田)
  6.3  二叉树上的深度优先搜索
    6.3.1  二叉树相关术语
    6.3.2  二叉树上的搜索
    6.3.3  经典例题讲解(员工派对)
    6.3.4  经典例题讲解(城市危机)
  6.4  小结
  6.5  习题
第7章  广度优先搜索算法
  7.1  依旧是图的搜索
  7.2  队列中的存储方式
  7.3  经典例题讲解
    7.3.1  艰难旅行
    7.3.2  混乱地铁
    7.3.3  温室大棚
  7.4  小结
  7.5  习题
第8章  回溯算法
  8.1  回溯算法原理
  8.2  回溯算法的应用
    8.2.1  N皇后
    8.2.2  数独
    8.2.3  排列组合
    8.2.4  两个扩展问题
  8.3  小结
  8.4  习题
第9章  动态规划
  9.1  动态规划介绍
  9.2  矿工问题
    9.2.1  问题描述
    9.2.2  问题分析
    9.2.3  参考实现
  9.3  爬楼梯问题
    9.3.1  问题描述
    9.3.2  问题分析
    9.3.3  参考实现
  9.4  背包问题
    9.4.1  问题描述
    9.4.2  问题分析
    9.4.3  问题实例
    9.4.4  参考实现
  9.5  最长递增子序列问题
    9.5.1  问题描述
    9.5.2  改进算法
    9.5.3  参考实现
  9.6  小结
  9.7  习题
第10章  贪心算法
  10.1  贪心算法介绍
  10.2  硬币找零问题
    10.2.1  问题描述
    10.2.2  问题实例
    10.2.3  参考实现
  10.3  活动安排问题
    10.3.1  问题描述
    10.3.2  参考实现
  10.4  哈夫曼编码
    10.4.1  问题描述
    10.4.2  哈夫曼树
    10.4.3  贪心选择性质
    10.4.4  最优子结构性质
    10.4.5  参考实现
  10.5  小结
  10.6  习题
第11章  分治算法
  11.1  分治算法原理
  11.2  分治算法应用
    11.2.1  二分查找
    11.2.2  二维数组的查找
    11.2.3  快速凸包算法
    11.2.4  快速傅氏变换
  11.3  小结
  11.4  习题
第12章  并查集
  12.1  并查集介绍
    12.1.1  并查集的构造方法
    12.1.2  并查集的应用
    12.1.3  并查集3种基本操作的Python实现
  12.2  朋友圈
    12.2.1  问题描述
    12.2.2  问题分析
    12.2.3  代码
  12.3  图的子元素
    12.3.1  问题描述
    12.3.2  问题分析
    12.3.3  代码
  12.4  小结
  12.5  习题
第13章  最短路径算法
  13.1  戴克斯特拉算法
    13.1.1  算法介绍
    13.1.2  算法证明
    13.1.3  算法代码
  13.2  贝尔曼-福特算法
    13.2.1  算法介绍
    13.2.2  算法证明
    13.2.3  算法代码
  13.3  弗洛伊德算法
    13.3.1  算法介绍
    13.3.2  算法代码
  13.4  A*搜索算法
    13.4.1  算法介绍
    13.4.2  算法证明
    13.4.3  算法代码
  13.5  习题
第14章  数论算法
  14.1  欧几里得算法
    14.1.1  算法分析与证明
    14.1.2  算法代码
    14.1.3  算法应用
  14.2  中国余数定理
    14.2.1  算法介绍
    14.2.2  算法证明
    14.2.3  算法代码
  14.3  素性检验算法
    14.3.1  费马素性检验
    14.3.2  米勒-拉宾素性检验
    14.3.3  算法代码
  14.4  小结
  14.5  习题