摘要: 一、抽象数据类型初识 定义一个抽象数据类型(ADT),目的是要定义一类计算对象,它们具有某些特定的功能。(抽象数据类型可以自定义) 在建立这种抽象时,人们不希望暴露其实现的内部细节。对更复杂的抽象,信息隐藏的意义可能更重要。 python的内置数据类型(也是一种抽象数据类型): 逻辑类型bool、数 阅读全文
posted @ 2018-09-10 21:30 悍妻 阅读(691) 评论(0) 推荐(0) 编辑
摘要: 1.内存单元和地址 计算中(程序中)直接使用的数据保存在计算机的内存储器(简称内存)。内存是CPU可以直接访问的数据存储设备。与之对应的是外存储器,简称外存,如磁盘、光盘、磁带等。保存在外存里的数据必须先装入内存,而后CPU才能使用它们。 内存的基本结构是线性排列的一批存储单元。每个单元的大小相同, 阅读全文
posted @ 2018-09-10 19:22 悍妻 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 一、结构性数据结构 一个具体的数据结构就是一个二元组 D = (E,R) 其中 E 是数据结构 D 的元素集合,而 R∈E * E 是 D 的元素之间的某种关系。 总结出一批特别有用的典型数据结构: 集合结构:其数据元素之间没有需要关注的明确关系,也就是说关系R是空集。 这样的数据结构也就是其元素的 阅读全文
posted @ 2018-09-10 17:38 悍妻 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1.把算法的代价看作规模的函数之后,很容易看到一种必然出现的情况: 可能有一些算法,随着实例规模的增长,其时间(或空间)开销的增长非常快, 而另一些算法的开销函数随着规模增长而增长的比较慢, 这两个函数关系称为算法的时间代价和空间代价。 2.人们主要关注算法的最坏情况代价,有时也关注算法的平均代价, 阅读全文
posted @ 2018-09-10 15:17 悍妻 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 算法设计中一些常见的通用想法可以称为算法设计模式,常见模式包括: 1.枚举法 2.贪心法 3.分治法 4.回溯法(搜索法) 5.动态规划法 6.分支限界法 阅读全文
posted @ 2018-09-10 12:49 悍妻 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 贪婪算法 阅读全文
posted @ 2018-09-10 12:33 悍妻 阅读(491) 评论(0) 推荐(0) 编辑
摘要: __init__称为初始化方法,其工作是构造本类的新对象。__init__ 是个构造方法。 阅读全文
posted @ 2018-09-10 11:11 悍妻 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 牛顿迭代法 描述如下: 0.对给定正实数x和允许误差e,另变量y取任意正实数,如另y=x; 1.如果y*y与x足够接近,即|y*y-x|<e,计算结束并把y作为结果; 2.取z=(y+x/y)/2; 3.将z作为y的新值,回到步骤1。 python代码: 阅读全文
posted @ 2018-09-10 11:08 悍妻 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 很多时候我们自己编写一个类,在将它的实例在终端上打印或查看的时候,我们往往会看到一个不太满意的结果。 类默认转化的字符串基本没有我们想要的一些东西,仅仅包含了类的名称以及实例的 ID (理解为 Python 对象的内存地址即可)。虽说这总比没有好,但确实是没什么用处啊。 所以,我们可能会手动打印对象 阅读全文
posted @ 2018-09-10 08:37 悍妻 阅读(821) 评论(1) 推荐(0) 编辑