作品简介

本书使用Python指导读者从零开始学习算法:由基础数据结构开始,逐步解说信息安全算法,最后也讲解了人工智能入门领域的KNN和K-means算法。全书包含约120个程序实例,使用约600张完整图例,深入讲解了7种数据结构和数十种算法,此外也针对国内外著名公司招聘程序员的算法考题做了讲解。本书实用性强、案例丰富,适合有一定Python基础的读者使用,也可作为大中专院校及培训机构的参考教材。

洪锦魁,资深IT作家,具备30余年的IT从业及写作经历,为老中青三代程序员创作了上百本IT图书,其作品始终屹立于编程基础图书巅峰而口碑不辍。洪老师的书,不拼页数,不拼华而不实的所谓“增值品”,每节文字确保能看懂,每段代码确保能跑通,每个提醒确保能用上,每个篇章确保有收获。无论你是学生、老师还是初级程序员,甚至是有编程需求的设计师,都可以从本套书系中找到适合你的品种,开始一段无障碍的学习、升级之旅!

近年出版作品:《Python数据科学零基础一本通》《Python入门很简单》《Python王者归来》《Python GUI设计:tkinter菜鸟编程》

作品目录

  • 作者简介
  • 内容简介
  • 前言
  • 第1章 算法基本概念
  • 1-1 计算机的算法
  • 1-2 不好的算法与好的算法
  • 1-3 程序执行的时间测量方法:时间复杂度
  • 1-4 内存的使用:空间复杂度
  • 1-5 数据结构
  • 1-6 习题
  • 第2章 数组
  • 2-1 基本概念
  • 2-2 使用索引存取数组内容
  • 2-3 新数据插入数组
  • 2-4 删除数组元素
  • 2-5 思考数组的优缺点
  • 2-6 与数组有关的Python程序
  • 2-7 习题
  • 第3章 链表
  • 3-1 链表数据形式与内存概念
  • 3-2 链表的数据读取
  • 3-3 新数据插入链表
  • 3-4 删除链表的节点元素
  • 3-5 循环链表(circle linked list)
  • 3-6 双向链表
  • 3-7 数组与链表基本操作的时间复杂度比较
  • 3-8 与链表有关的Python程序
  • 3-9 习题
  • 第4章 队列
  • 4-1 数据插入enqueue
  • 4-2 数据读取dequeue
  • 4-3 使用列表模仿队列的操作
  • 4-4 与队列有关的Python模块
  • 4-5 习题
  • 第5章 栈
  • 5-1 数据推入push
  • 5-2 数据取出pop
  • 5-3 Python中栈的应用
  • 5-4 函数调用与栈运作
  • 5-5 递归调用与栈运作
  • 5-6 习题
  • 第6章 二叉树
  • 6-1 建立二叉树
  • 6-2 删除二叉树的节点
  • 6-3 搜寻二叉树的数据
  • 6-4 更进一步认识二叉树
  • 6-5 内存存储二叉树的方法
  • 6-6 Python中二叉树的运用
  • 6-7 习题
  • 第7章 堆积树
  • 7-1 建立堆积树
  • 7-2 插入数据到堆积树
  • 7-3 取出最小堆积树的值
  • 7-4 最小堆积树与数组
  • 7-5 Python内建堆积树模块heapq
  • 7-6 Python硬功夫:自己建立堆积树
  • 7-7 习题
  • 第8章 哈希表
  • 8-1 基本概念
  • 8-2 哈希表转成数组
  • 8-3 搜寻哈希表
  • 8-4 哈希表的规模与扩充
  • 8-5 好的哈希表与不好的哈希表
  • 8-6 哈希表效能分析
  • 8-7 Python程序应用
  • 8-8 认识哈希表模块hashlib
  • 8-9 习题
  • 第9章 排序
  • 9-1 排序的概念与应用
  • 9-2 泡沫排序法(bubble sort)
  • 9-3 鸡尾酒排序(cocktail sort)
  • 9-4 选择排序(selection sort)
  • 9-5 插入排序(insertion sort)
  • 9-6 堆积树排序(heap sort)
  • 9-7 快速排序(quick sort)
  • 9-8 合并排序(merge sort)
  • 9-9 习题
  • 第10章 数据搜寻
  • 10-1 顺序搜寻法(sequential search)
  • 10-2 二分搜寻法(binary search)
  • 10-3 搜寻最大值算法
  • 10-4 习题
  • 第11章 栈、回溯算法与迷宫
  • 11-1 走迷宫与回溯算法
  • 11-2 迷宫设计栈扮演的角色
  • 11-3 Python程序走迷宫
  • 11-4 习题
  • 第12章 从递归看经典算法
  • 12-1 斐波那契(Fibonacci)数列
  • 12-2 河内塔算法
  • 12-3 八皇后算法
  • 12-4 分形与VLSI设计算法
  • 12-5 习题
  • 第13章 图形理论
  • 13-1 图形的基本概念
  • 13-2 广度优先搜寻算法概念解说
  • 13-3 Python实践广度优先搜寻算法
  • 13-4 深度优先搜寻算法概念解说
  • 13-5 习题
  • 第14章 图形理论之最短路径算法
  • 14-1 戴克斯特拉(Dijkstra's)算法
  • 14-2 贝尔曼-福特(Bellman-Ford)算法
  • 14-3 A*算法
  • 14-4 习题
  • 第15章 贪婪算法
  • 15-1 选课分析
  • 15-2 背包问题:贪婪算法不是最完美的结果
  • 15-3 电台选择
  • 15-4 业务员旅行
  • 15-5 习题
  • 第16章 动态规划算法
  • 16-1 再谈背包问题:动态规划算法
  • 16-2 旅游行程的安排
  • 16-3 习题
  • 第17章 数据加密到信息安全算法
  • 17-1 数据安全与数据加密
  • 17-2 摩斯密码(Morse code)
  • 17-3 凯撒密码
  • 17-4 再谈文件加密技术
  • 17-5 全天下只有你可以解的加密程序(你也可能无法解)
  • 17-6 哈希函数与SHA家族
  • 17-7 密钥密码
  • 17-8 讯息鉴别码(message authentication code)
  • 17-9 数字签名(digital signature)
  • 17-10 数字证书(digital certificate)
  • 17-11 习题
  • 第18章 人工智能破冰之旅:KNN和K-means算法
  • 18-1 KNN算法:电影分类
  • 18-2 KNN算法:选举造势与销售烤香肠
  • 18-3 K-means算法
  • 18-4 习题
  • 第19章 常见职场面试算法
  • 19-1 质数测试
  • 19-2 回文算法
  • 19-3 欧几里得算法
  • 19-4 最小公倍数(least common multiple)
  • 19-5 鸡兔同笼问题
  • 19-6 挖金矿问题
  • 19-7 习题
展开全部