基于mit6.006和hello-algo的算法笔记
基础

数据结构
算法性质
循环不变式
主要用来帮助我们理解算法的正确性。关千循环不变式
,我们必须证明三条
性质:
初始化:循环的第一次迭代之前,它为真。
保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。
终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助千证明算法是正确的。
循环不变式
主要用来帮助我们理解算法的正确性。关千循环不变式
,我们必须证明三条
性质:
初始化:循环的第一次迭代之前,它为真。
保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。
终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助千证明算法是正确的。
软件可以粗略分为系统,工具,应用
软件的发行模式有:
Linux系统提供多个虚拟控制台(默认6个字符界面,1个图形界面),可以独立使用,自由切换
本次作业使用一个房价数据集,房价数据集完全由数字信息构成,规模属于中小级别(2w条左右),有一定的数据处理需求,但由于最主要的参数房价和其他相关列主要是简单的类线性关系,易于作为学习数据科学的入门材料。
此外,通过房屋参数来预测房价在现实中也有一定的实践意义,例如一些房屋出售软件可以建立相关模型来给出估价等。
主要目标是预测房价,为此目标,需要清洗不合理的数据,寻找线性相关的列,最后利用一些回归模型来进行训练,并验证结果 最后的输入是数据集内和房价线性相关程度较高的列,输出则是对房价的预测结果。
这些数据涉及在加州某个地区的街区以及基于 1990 年人口普查数据的一些汇总统计数据:
对这种形式的函数可以这样比较
\[f_1=n^{\sqrt{n}}=(2^{lgn})^{\sqrt{n}}\] \[f_2=n^{10}.2^{n/2}=2^{lg(10n)+n/2}\]
对于T(n,n): T (x, y) = Θ(x + y) + T (x/2, y/2). 化成
得到θ(n)
Ctrl
+ Return
(或者 Cmd
+ Return
在 Mac 上): 评估当前单元格Shift
+ Return
: 评估当前单元格并移至下一个单元格ESC
: 命令模式 (在使用以下任何命令之前可能需要按)a
: 在上面创建一个单元格b
: 在下面创建一个单元格dd
: 删除一个单元格z
: 撤消上一次单元格操作m
: 将单元格转换为 Markdowny
: 将单元格转换为代码
Shell 脚本通常以 shebang 行开头:#!path/to/interpreter。
#!
是一个人类可读的 幻数表示 0x23 0x21
它可以告诉 shell 将文件其余部分的执行传递给 指定翻译。 如果您的脚本作为可执行文件运行(例如 ./awesome_shell_script
) 加上 shebang 行,那么 shell 将调用 可执行文件(通常是解释器)位于 path/to/interpreter
运行你的 脚本。 如果您的脚本作为参数传递给解释器,例如 bash awesome_shell_script
,那么 shebang 没有效果并且 bash
会处理 脚本的执行。
正如童话故事常见的开头一样,泰特斯是个贫穷而有志气的青年,有一天当他在王国的大街上闲逛时,他遇到了公主的轿子,年轻的泰特斯对美丽淑慧的公主一见钟情,他下定决心一定要当上王国的驸马爷。
名称也可以与函数绑定。例如,名称 max
就和我们之前使用的 max
函数进行了绑定。与数字不同,函数很难以文本呈现,因此当询问一个函数时,Python 会打印一个标识来描述: