随笔分类 -  数据结构+算法

摘要:一.冒泡排序 代码示例: 二.选择排序 - 选择排序改进了冒泡排序,每次遍历列表只做一次交换。为了做到这一点,一个选择排序在他遍历时寻找最大的值,并在完成遍历后,将其放置在正确的位置。 - 对于冒泡排序来讲选择排序由于交换数量的减少,选择排序通常在基准研究中执行得更快。 三.插入排序 - 插入排序的 阅读全文
posted @ 2019-05-20 11:18 波晓张 阅读(1669) 评论(0) 推荐(1) 编辑
摘要:python实现二叉树的数据结构: . 二叉树的排序方式: - 广度遍历(层次遍历) - 深度遍历: - 前序(根左右):把根放到最前面 - 中序(左根右):把根放到中间 - 后序(左右根):把根放到最后 python实现排序二叉树: 阅读全文
posted @ 2019-05-13 12:46 波晓张 阅读(843) 评论(0) 推荐(0) 编辑
摘要:一.查找/搜索 - 我们现在把注意力转向计算中经常出现的一些问题,即搜索或查找的问题。搜索是在元素集合中查找特定元素的算法过程。搜索通常对于元素是否存在返回 True 或 False。有时它可能返回元素被找到的地方。我们在这里将仅关注成员是否存在这个问题。 - 在 Python 中,有一个非常简单的 阅读全文
posted @ 2019-03-18 22:31 波晓张 阅读(1276) 评论(0) 推荐(0) 编辑
摘要:一.内存 - 计算机的作用:对数据进行存储和运算。首先我们需要知道我们目前使用的计算机都是二进制的计算机,就以为着计算机只可以存储和运算二进制的数据。例如下载好的一部电影,该电影可以存储到计算机中,计算机中存储的是基于二进制的电影数据,然后我们可以通过相关的视频播放软件结合相关的硬件对电影的二进制数 阅读全文
posted @ 2019-03-14 12:18 波晓张 阅读(1034) 评论(0) 推荐(1) 编辑
摘要:- 回文检测:设计程序,检测一个字符串是否为回文。 - 回文:回文是一个字符串,读取首尾相同的字符,例如,radar toot madam。 - 分析:该问题的解决方案将使用 deque 来存储字符串的字符。我们从左到右处理字符串,并将每个字符添加到 deque 的尾部。在这一点上,deque 像一 阅读全文
posted @ 2019-03-13 19:26 波晓张 阅读(488) 评论(0) 推荐(0) 编辑
摘要:一.双端队列(Deque) - 概念:deque(也称为双端队列)是与队列类似的项的有序集合。它有两个端部,首部和尾部,并且项在集合中保持不变。 - 特性:deque 特殊之处在于添加和删除项是非限制性的。可以在前面或后面添加新项。同样,可以从任一端移除现有项。在某种意义上,这种混合线性结构提供了单 阅读全文
posted @ 2019-03-13 19:14 波晓张 阅读(910) 评论(0) 推荐(0) 编辑
摘要:烫手山芋游戏介绍:6个孩子围城一个圈,排列顺序孩子们自己指定。第一个孩子手里有一个烫手的山芋,需要在计时器计时1秒后将山芋传递给下一个孩子,依次类推。规则是,在计时器每计时7秒时,手里有山芋的孩子退出游戏。该游戏直到剩下一个孩子时结束,最后剩下的孩子获胜。请使用队列实现该游戏策略,排在第几个位置最终 阅读全文
posted @ 2019-03-13 18:43 波晓张 阅读(846) 评论(0) 推荐(0) 编辑
摘要:一.队列 - 概念:队列是项的有序结合,其中添加新项的一端称为队尾,移除项的一端称为队首。当一个元素从队尾进入队列时,一直向队首移动,直到它成为下一个需要移除的元素为止。最近添加的元素必须在队尾等待。集合中存活时间最长的元素在队首,这种排序成为 FIFO,先进先出,也被成为先到先得。 - 案例:队列 阅读全文
posted @ 2019-03-13 17:19 波晓张 阅读(528) 评论(0) 推荐(0) 编辑
摘要:一.线性数据结构 - 我们从四个简单但重要的概念开始研究数据结构。栈,队列,deques(双向队列), 列表是一类数据的容器,它们数据元素之间的顺序由添加或删除的顺序决定。一旦一个数据元素被添加,它相对于前后元素一直保持该位置不变。诸如此类的数据结构被称为线性数据结构。 - 线性数据结构有两端,有时 阅读全文
posted @ 2019-03-13 16:55 波晓张 阅读(552) 评论(0) 推荐(1) 编辑
摘要:一.引言 - 现在大家对 大O 算法和不同函数之间的差异有了了解。本节的目标是告诉你 Python 列表和字典操作的 大O 性能。然后我们将做一些基于时间的实验来说明每个数据结构的花销和使用这些数据结构的好处。重要的是了解这些数据结构的效率,因为它们是本博客实现其他数据结构所用到的基础模块。本节中, 阅读全文
posted @ 2019-03-13 11:07 波晓张 阅读(886) 评论(0) 推荐(0) 编辑
摘要:一.什么是计算机科学? 首先明确的一点就是计算机科学不仅仅是对计算机的研究,虽然计算机在科学发展的过程中发挥了重大的作用,但是它只是一个工具,一个没有灵魂的工具而已。所谓的计算机科学实际上是对问题、解决问题以及解决问题的过程中产生产生的解决方案的研究。例如给定一个问题,计算机科学家的目标是开发一个算 阅读全文
posted @ 2019-03-13 09:18 波晓张 阅读(955) 评论(0) 推荐(0) 编辑