标签分类
当前位置:首页 > 程序设计电子书 > 算法电子书网盘下载
漫画算法:小灰的算法之旅

漫画算法:小灰的算法之旅 全格式完整版电子书

官方价: 25.18

更 新:

漫画算法:小灰的算法之旅 (pdf、epub、mobi、azw3)下载

下载地址:https://pan.baidu.com/s/1c_dh7ZDoq8JoLqSxH7G3T

分享码:dwc4

给大家带来的一篇关于算法相关的电子书资源,介绍了关于漫画算法、小灰、算法之旅方面的内容,本书是由电子工业出版社出版,格式根据源资源分为PDF、epub、mobi、azw3其中一种或多种格式,资源大小115.22 MB,魏梦舒编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.9,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

漫画算法:小灰的算法之旅 PDF

本资源为完整全格式完整版(非试看版)

小灰的算法经典故事给算法这颗“子弹”包上了“糖衣”,让算法的杀伤力潜藏于内,表面已不可怕,萌萌达Q弹讨人喜欢。

从基本数据结构,到各种排序算法,再到招聘面试算法,再到初入职场运用,书中的主人公小灰和大黄领着大伙儿逐一破译。

和一大群开心的小仓鼠相互理解算法观念、了解算法对存储空间和特性的危害,并打破常规去寻找解决困难的尚佳计划方案。

这书根据主人翁小灰的成长经历,用动漫漫画的方式叙述了算法和数据结构的基本知识,纷繁复杂的算法面试题目及算法的具体应用领域。最先详细介绍了算法和数据结构的整体定义,告诉他大伙儿算法是啥,数据结构又是啥,常有什么主要用途,怎样剖析时间复杂度,怎样剖析室内空间复杂性。第二章 详细介绍了*基本的数据结构,包含数组、链表、栈、序列、哈希表的定义和读写操作。第三章 详细介绍了树和二叉树的定义、二叉树的各种各样遍历方法、二叉树的独特方式二叉堆和优先队列的运用。4 详细介绍了几类典型性的排序算法,包含冒泡排序、快速排序、堆排序、记数排列、桶排序。第五章 详细介绍了十余种职场中时兴的算法面试题目及详尽的答题构思。比如如何分辨链表有环、如何测算大整数金额加法等。第六关 详细介绍了算法在职人员场中的某些运用,比如应用LRU算法来击败冷统计数据,应用Bitmap算法来统计分析客户特点等。

微信公众平台程序猿小灰的创作者,很多年的互联网行业从事工作经验,依次在京东金融和摩拜单车高新科技从业算法和产品研发有关工作中,对算法拥有深层次的科学研究。

目录

  • 第1章 算法概述 / 1
  • 1.1 算法和数据结构 / 1
  • 1.1.1 小灰和大黄 / 1
  • 1.1.2 什么是算法 / 3
  • 1.1.3 什么是数据结构 / 7
  • 1.2 时间复杂度 / 8
  • 1.2.1 算法的好与坏 / 8
  • 1.2.2 基本操作执行次数 / 10
  • 1.2.3 渐进时间复杂度 / 12
  • 1.2.4 时间复杂度的巨大差异 / 15
  • 1.3 空间复杂度 / 16
  • 1.3.1 什么是空间复杂度 / 16
  • 1.3.2 空间复杂度的计算 / 19
  • 1.3.3 时间与空间的取舍 / 21
  • 1.4 小结 / 22
  • 第2章 数据结构基础 / 23
  • 2.1 什么是数组 / 23
  • 2.1.1 初识数组 / 23
  • 2.1.2 数组的基本操作 / 26
  • 2.1.3 数组的优势和劣势 / 32
  • 2.2 什么是链表 / 33
  • 2.2.1 “正规军”和“地下党” / 33
  • 2.2.2 链表的基本操作 / 35
  • 2.3 栈和队列 / 42
  • 2.3.1 物理结构和逻辑结构 / 42
  • 2.3.2 什么是栈 / 43
  • 2.3.3 栈的基本操作 / 44
  • 2.3.4 什么是队列 / 45
  • 2.3.5 队列的基本操作 / 46
  • 2.3.6 栈和队列的应用 / 50
  • 2.4 神奇的散列表 / 51
  • 2.4.1 为什么需要散列表 / 51
  • 2.4.2 哈希函数 / 54
  • 2.4.3 散列表的读写操作 / 55
  • 2.5 小结 / 59
  • 第3章 树 / 61
  • 3.1 树和二叉树 / 61
  • 3.1.1 什么是树 / 61
  • 3.1.2 什么是二叉树 / 64
  • 3.1.3 二叉树的应用 / 67
  • 3.2 二叉树的遍历 / 71
  • 3.2.1 为什么要研究遍历 / 71
  • 3.2.2 深度优先遍历 / 73
  • 3.2.3 广度优先遍历 / 84
  • 3.3 什么是二叉堆 / 88
  • 3.3.1 初识二叉堆 / 88
  • 3.3.2 二叉堆的自我调整 / 90
  • 3.3.3 二叉堆的代码实现 / 95
  • 3.4 什么是优先队列 / 98
  • 3.4.1 优先队列的特点 / 98
  • 3.4.2 优先队列的实现 / 99
  • 3.5 小结 / 103
  • 第4章 排序算法 / 105
  • 4.1 引言 / 105
  • 4.2 什么是冒泡排序 / 107
  • 4.2.1 初识冒泡排序 / 107
  • 4.2.2 冒泡排序的优化 / 110
  • 4.2.3 鸡尾酒排序 / 114
  • 4.3 什么是快速排序 / 118
  • 4.3.1 初识快速排序 / 118
  • 4.3.2 基准元素的选择 / 120
  • 4.3.3 元素的交换 / 122
  • 4.3.4 单边循环法 / 125
  • 4.3.5 非递归实现 / 128
  • 4.4 什么是堆排序 / 131
  • 4.4.1 传说中的堆排序 / 131
  • 4.4.2 堆排序的代码实现 / 134
  • 4.5 计数排序和桶排序 / 137
  • 4.5.1 线性时间的排序 / 137
  • 4.5.2 初识计数排序 / 138
  • 4.5.3 计数排序的优化 / 140
  • 4.5.4 什么是桶排序 / 145
  • 4.6 小结 / 149
  • 第5章 面试中的算法 / 150
  • 5.1 踌躇满志的小灰 / 150
  • 5.2 如何判断链表有环 / 151
  • 5.2.1 一场与链表相关的面试 / 151
  • 5.2.2 解题思路 / 155
  • 5.2.3 问题扩展 / 158
  • 5.3 最小栈的实现 / 161
  • 5.3.1 一场关于栈的面试 / 161
  • 5.3.2 解题思路 / 163
  • 5.4 如何求出最大公约数 / 166
  • 5.4.1 一场求最大公约数的面试 / 166
  • 5.4.2 解题思路 / 168
  • 5.5 如何判断一个数是否为2的整数次幂 / 173
  • 5.5.1 一场很“2”的面试 / 173
  • 5.5.2 解题思路 / 175
  • 5.6 无序数组排序后的最大相邻差 / 178
  • 5.6.1 一道奇葩的面试题 / 178
  • 5.6.2 解题思路 / 179
  • 5.7 如何用栈实现队列 / 184
  • 5.7.1 又是一道关于栈的面试题 / 184
  • 5.7.2 解题思路 / 186
  • 5.8 寻找全排列的下一个数 / 191
  • 5.8.1 一道关于数字的题目 / 191
  • 5.8.2 解题思路 / 193
  • 5.9 删去k个数字后的最小值 / 196
  • 5.9.1 又是一道关于数字的题目 / 196
  • 5.9.2 解题思路 / 198
  • 5.10 如何实现大整数相加 / 205
  • 5.10.1 加法,你会不会 / 205
  • 5.10.2 解题思路 / 206
  • 5.11 如何求解金矿问题 / 211
  • 5.11.1 一个关于财富自由的问题 / 211
  • 5.11.2 解题思路 / 213
  • 5.12 寻找缺失的整数 / 223
  • 5.12.1 “五行”缺一个整数 / 223
  • 5.12.2 问题扩展 / 225
  • 第6章 算法的实际应用 / 230
  • 6.1 小灰上班的第1天 / 230
  • 6.2 Bitmap的巧用 / 232
  • 6.2.1 一个关于用户标签的需求 / 232
  • 6.2.2 用算法解决问题 / 234
  • 6.3 LRU算法的应用 / 241
  • 6.3.1 一个关于用户信息的需求 / 241
  • 6.3.2 用算法解决问题 / 243
  • 6.4 什么是A星寻路算法 / 249
  • 6.4.1 一个关于迷宫寻路的需求 / 249
  • 6.4.2 用算法解决问题 / 251
  • 6.5 如何实现红包算法 / 262
  • 6.5.1 一个关于钱的需求 / 262
  • 6.5.2 用算法解决问题 / 264
  • 6.6 算法之路无止境 / 268

上一篇:少博士趣学Python  下一篇:深入浅出Docker

展开 +

收起 -

算法 相关电子书
算法 学习笔记
网友NO.427227

Python cookbook(数据结构与算法)将序列分解为单独变量的方法

本文实例讲述了Python cookbook(数据结构与算法)将序列分解为单独变量的方法。分享给大家供大家参考,具体如下: 如果对象是可迭代的(任何序列),则可以进行分解操作,包括元组、列表、字符串、文件、迭代器以及生成器,可通过简单的一个赋值操作分解为单独的变量。 唯一要求: 变量的总数和序列相吻合,否则将出错; Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information. p=[4,5] p[4, 5] x,y=p x4 y5 data=['lucy',50,12.1,(2016,07,31)] data['lucy', 50, 12.1, (2016, 7, 31)] name,shares,price,date=data name'lucy' shares50 price12.1 date(2016, 7, 31) name,shares,price,(year,mon,day)=data name'lucy' shares50 price12.1 year2016 mon7 day31 s='hello' s'hello' a,b,c,d,e=s c'l' d'l' e'o' data=['lucy',50,12.1,(2016,07,31)] _,shares,price,_=data #当想丢弃某些值时,可以选一个用不到的变量名作为要丢弃的值的名称,比如此处“_” shares50 price12.1 注意: 请确保丢弃的值选择的变量名在其他地方未曾用到过 。 (代码摘自《Python Cookbook》) 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇……

网友NO.565710

总结有关python八大排序算法(下)

这篇文章主要为大家详细介绍了python实现八大排序算法的第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文接上一篇博客python实现的八大排序算法part1,将继续使用python实现八大排序算法中的剩余四个:快速排序、堆排序、归并排序、基数排序 5、快速排序 快速排序是通常被认为在同数量级(O(nlog2n))的排序方法中平均性能最好的。 算法思想: 已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据a[x]作为基准。比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的每一个数据a[x],a[k+1]~a[n]中的每一个数据a[x],然后采用分治的策略分别对a[1]~a[k-1]和a[k+1]~a[n]两组数据进行快速排序。 优点:极快,数据移动少; 缺点:不稳定。 python代码实现: def quick_sort(list): little = [] pivotList = [] large = [] # 递归出口 if len(list) = 1: return list else: # 将第一个值做为基准 pivot = list[0] for i in list: # 将比基准小的值放到less数列 if i pivot: little.append(i) # 将比基准大的值放到more数列 elif i pivot: large.append(i) # 将和基准相同的值保存在基准数列 else: pivotList.append(i) # 对less数列和more数列继续进行快速排序 little = quick_sort(little) large = quick_sort(large) return little + pivotList + large 下面这段代码出自《Python cookbook 第二……

网友NO.791479

java数据结构和算法中哈希表知识点详解

树的结构说得差不多了,现在我们来说说一种数据结构叫做哈希表(hash table),哈希表有是干什么用的呢?我们知道树的操作的时间复杂度通常为O(logN),那有没有更快的数据结构?当然有,那就是哈希表; 1.哈希表简介 哈希表(hash table)是一种数据结构,提供很快速的插入和查找操作(有的时候甚至删除操作也是),时间复杂度为O(1),对比时间复杂度就可以知道哈希表比树的效率快得多,并且哈希表的实现也相对容易,然而没有任何一种数据结构是完美的,哈希表也是;哈希表最大的缺陷就是基于数组,因为数组初始化的时候大小是确定的,数组创建后扩展起来比较困难; 当哈希表装满了之后,就要把数据转移到一个更大的哈希表中,这会很费时间,而且哈希表不支持有顺序的遍历,因为从哈希表中遍历数据是随机的;所以我们使用哈希表的前提是:不需要有序的遍历数据,可以大概知道数据量的多少;满足这两点就可以用哈希表; 那有人就要问了,说得这么厉害,哈希表到底是什么样子的啊?下面就随便说两个吧。。。 很经典的例子就是英语字典,我们查字典的时候可以根据这个单词就可以找到第xxx页,在这里该单词和页数就对应起来了,这可以说是一个哈希表; 再举个现实中的例子,在上学的时候每个人在……

网友NO.709054

python实现简单遗传算法

今天整理之前写的代码,发现在做数模期间写的用python实现的遗传算法,感觉还是挺有意思的,就拿出来分享一下。 首先遗传算法是一种优化算法,通过模拟基因的优胜劣汰,进行计算(具体的算法思路什么的就不赘述了)。大致过程分为初始化编码、个体评价、选择,交叉,变异。 以目标式子 y = 10 * sin(5x) + 7 * cos(4x)为例,计算其最大值 首先是初始化,包括具体要计算的式子、种群数量、染色体长度、交配概率、变异概率等。并且要对基因序列进行初始化 pop_size = 500 # 种群数量 max_value = 10 # 基因中允许出现的最大值 chrom_length = 10 # 染色体长度 pc = 0.6 # 交配概率 pm = 0.01 # 变异概率 results = [[]] # 存储每一代的最优解,N个二元组 fit_value = [] # 个体适应度 fit_mean = [] # 平均适应度 pop = geneEncoding(pop_size, chrom_length) 其中genEncodeing是自定义的一个简单随机生成序列的函数,具体实现如下 def geneEncoding(pop_size, chrom_length): pop = [[]] for i in range(pop_size): temp = [] for j in range(chrom_length): temp.append(random.randint(0, 1)) pop.append(temp) return pop[1:] 编码完成之后就是要进行个体评价,个体评价主要是计算各个编码出来的list的值以及对应带入目标式子的值。其实编码出来的就是一堆2进制list。这些2进制list每个都代表了一个数。其值的计算方式为转换为10进……

码小辫

码小辫 发起

资源
29
粉丝
41
喜欢
659
评论
7

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明