猜你喜欢
数据结构和算法基础Python语言实现

数据结构和算法基础Python语言实现

书籍作者:陈良旭 ISBN:9787301316542
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8632
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书首先介绍算法的概念和特点,然后介绍数据结构,再逐步深入介绍各类算法,通过解决实际问题加深理解。本书选取了近年来比较热门的语言Python作为载体,来实现算法的功能。这不但可以让读者系统地学习算法的相关知识,而且还能提高读者对Python语言的应用水平。
本书分为7章,涵盖的主要内容有算法简介、数据结构、数学相关算法、排序算法、查找算法、图相关算法、算法思想归纳。其中包含对非常多经典算法的讲解,如归并排序、快速排序、拓扑排序、二叉查找树、红黑树、最小生成树算法、最短路径算法、极大极小值算法、遗传算法等。最后通过归纳总结,让读者懂得常见算法的设计思路,能够根据实际情况选择合适的算法。
作者简介
陈良旭,毕业于法国国立高等应用电子学院(ENSEA),获得计算机工程师文凭,曾在ETIS实验室研究LDPC算法。现任职于佛山珠江传媒大数据科技有限公司,从事数据分析工作,研究方向有舆情监控、数据纠错等。
编辑推荐
1. 新颖:模块化的编程,程序分步运行与讲解。
2. 直观:300多幅图表,辅助分析,一看就懂。
3. 易用:例程代码可在浏览器中直接运行,代码注释详尽,拿来就用。
4. 实用:30多种算法,60多个实例,覆盖面广。
前言
当前,信息科技技术迅速发展,给人们的生产和生活带来了极大的改变,工业信息化、中国智造、人工智能、移动互联网、O2O(线上到线下)等一系列产业的发展,都需要计算机程序员把各种奇思妙想实现出来,由此衍生了非常多的程序员岗位,吸引了大批人才投身到IT行业中。同时,各种培训机构也顺势推出计算机培训课程,最快一个月就能掌握一门计算机语言,速成程序员。
通过网络课程学习一门新语言看起来挺简单,但真正需要解决实际问题的时候,就感觉无从下手了,无法确定之前的哪个练习和现在的问题是相似的。并且学习过程中的问题总是限定在几个答案中,并不能将其直接套用在实际生活中。只有懂得算法,真正读懂代码、读懂程序的设计,才能称为合格的程序员。
这也是我写这本书的初衷,学习知识不能流于表面,在这个快速变化的时代,我们需要沉着冷静,扎扎实实地练好基本功。比如一个人懂中文、英文、日文,但作文不一定写得好。对于程序员来说也是一样的,学了很多编程语言,但只会课堂上的练习,那是无法应对工作的。那么,到底什么是基本功呢?算法就是程序员的基本功。
我从初中就开始接触编程,并进入了学校的信息科技竞赛小组。所谓信息科技竞赛,就是学习各种算法。说句心里话,算法真的很难,初高中的题目就已经涉及高等数学、机器学习、神经网络等学科,当时的我真的很难理解,直到上了大学才渐渐明白这些概念。
因此,我写这本书的另一个目的,就是希望能够用通俗易懂的语言来引领大家踏入算法的大门。
算法需要一门语言来实现它的功能,那么选择怎样的语言作为载体呢?我思考了一番,最终选择了Python,理由如下。
(1)它是一门脚本语言,和其他语言相比更加简洁、高效。这里说的高效并不是指运行速度快,而是相对其他语言,Python能用更少的代码量实现相同的功能,因此代码可读性更强。
(2)它是一门交互式语言,这意味着我们可以一行一行地执行代码,随时观察代码中的变量,从而更加清楚算法的执行过程。
(3)它背后有着最庞大的免费“代码库”,有足够的资源来实现很多功能,比如画图功能,简单几行代码就能在屏幕上画出线状图,便于我们观察算法的效果。那么我们就能更专注于算法本身,而不是花大量的时间处理结果显示问题。
(4)它被称为“胶水语言”,能够应用在很多地方,如爬虫、数据分析、科学计算、自动化办公、自动化运维、网站开发、多媒体处理、机器学习、深度学习等。正因如此,这门语言在近几年非常火爆。我们在学习算法的过程中,又能增进Python编程技巧,可谓一箭双雕。
算法非常精妙,涉及数学、数据结构、计算机原理等知识,有些地方确实比较难理解,如算法的正确性证明、复杂度计算等。如果用严谨的数学公式去验证和计算,读者可能比较难看懂。因此本书致力于用通俗易懂的语言及简明的图表来阐明算法的原理,让读者从实例中领悟算法的奥妙。
如果读者在学习过程中遇到了什么问题,或者发现书中有错误的地方,都可以通过邮箱[email protected]联系我。当然,读者也可以在代码仓的issue中反馈,我非常乐意与大家交流,一起学习和讨论。
本书还提供了15节视频课程,读者可扫描下方二维码,根据提示获取。


最后,我想把此书送给我的孩子,他的到来让我有机会重新发现这个世界的美妙,通过他充满好奇的双眼,我重新认识了身边的一切事物。希望他能永远保持对世界的好奇,健康快乐地成长。
目录
第1章 从零开始学算法 1

1.1 算法基础知识 21.1.1 什么是算法 2
1.1.2 算法时间复杂度 2
1.1.3 算法空间复杂度 5
1.1.4 算法优劣比较 6


1.2 计算机中如何描述算法 61.2.1 自然语言 7
1.2.2 流程图 7
1.2.3 伪代码 8
1.2.4 挑战:这个月有多少天 8


1.3 Python概述 101.3.1 Python简介 10
1.3.2 环境搭建 11
1.3.3 开发工具介绍 15
1.3.4 单元测试 22


1.4 总结 252

第2章 数据结构 27


2.1 数组 282.1.1 定义 28
2.1.2 挑战1:海盗船生存大考验 30
2.1.3 挑战2:必胜的游戏 32


2.2 链表 372.2.1 定义 37
2.2.2 挑战:国王的继承人 43


2.3 队列 452.3.1 定义 45
2.3.2 挑战:维修报警器 48


2.4 栈 502.4.1 定义 51
2.4.2 挑战1:和机器人做朋友 52
2.4.3 挑战2:让机器人帮你检查作业 54


2.5 哈希表 562.5.1 定义 56
2.5.2 挑战:基因研究 62


2.6 树 642.6.1 定义 65
2.6.2 二叉树 66
2.6.3 二叉查找树 71
2.6.4 挑战:画一棵好看的“树” 75


2.7 图 782.7.1 定义 79
2.7.2 图的表示 79
2.7.3 图的遍历 82
2.7.4 挑战:“一笔画完”小游戏 86


2.8 总结 913

第3章 数 学 92


3.1 进制转换 93
3.2 基本概念 933.2.1 十进制 93
3.2.2 二进制 93
3.2.3 八进制和十六进制 93
3.2.4 进制转换 94
3.2.5 挑战:网络攻击 98


3.3 数学运算 1003.3.1 内置函数 100
3.3.2 Math库模块 101
3.3.3 排列组合 102
3.3.4 矩阵运算 102
短评

学习python语言

2020-12-14 12:36:26

里面的案例都好有趣,都是游戏的形式,有王国、海岛、辅导小孩做作业,在玩游戏的过程中学到了很多,而且这些都是能应用在实际工作中的技能,真的很不错!

2020-11-23 17:38:50