课程地址:https://www.icourse163.org/course/ZJU-93001
笔记中图片均来自此mooc中讲义。
第三周的内容是讲树,现在来回顾下。
Part1:回顾
1.树的定义
光看定义还挺抽象,但是看下示意图还是比较好理解的,注意这里互不相交这个特点很关键,可以据此来判断一个结构是否为树,例如一下三个例子均不是树。
课程地址:https://www.icourse163.org/course/ZJU-93001
笔记中图片均来自此mooc中讲义。
第三周的内容是讲树,现在来回顾下。
光看定义还挺抽象,但是看下示意图还是比较好理解的,注意这里互不相交这个特点很关键,可以据此来判断一个结构是否为树,例如一下三个例子均不是树。
一直想学这门课,网易公开课的版本确实不错,但是代码看不清,非常难受,所以自己搬运了youtube上2016年的课程,非常清晰,字幕是youtube自动翻译的,可能有些不准,但内容和网易公开课版本基本一致,这里给下链接。
视频地址:
https://pan.baidu.com/s/12oEpv022SiKlJGwZiQNO0g
密码:62nu
参考书籍:
https://pan.baidu.com/s/1PYRjvvq6fkV_NdTR7FOa2g
密码:h092
课程主页:
https://www.baidu.com/link?url=Ti8c7qJ4ibyIfgMgucbK5qTnnzGf3xWVsRdzORr1_fF-vGRVoHQ7Q7RlITXwHgPE&wd=&eqid=a77bcc030001438d000000045aba5907
最新版的课程其实和网易公开课上的资料基本一致,选择哪个都可以,个人感觉把这些部分都完成应该会有不错的效果。
再来简述一下这门课程,这门是编程的入门课,0基础都可以学,介绍java的,老师讲课很有意思,难度不大,感觉这门课的精华是作业,所以在这里记录下作业的思路。
课程地址:https://www.icourse163.org/course/ZJU-93001
笔记中图片均来自此mooc中讲义。
之前忙于研究生复试,所以停滞了一周的课程。这次回顾下第二周的课程,这周主要讲了三个部分,线性表,堆栈,队列。
这里引用老师的介绍。
线性表比较常用,比如python中的list的就是线性表,由于python自带,所以这里没有自己实现一遍。
这一周相对基础,只列两点
解释与编译的区别
解释:一条一条运行
编译:翻译完成之后运行
这里老师说解释执行未必比编译执行慢,因为现在计算机的运算速度已经非常快了。
现在一般说哪个语言比较适合做什么不是说这个语言本身,而是这个语言有很强大的库函数。比如python的pandas,numpy库非常适合做科学计算,所以人们常说python适合做数据分析。
课程地址:https://www.icourse163.org/course/ZJU-93001
笔记中图片均来自此mooc中讲义。
这周开始了浙大陈越老师的数据结构课程,听了一周,感觉讲的很清晰,现在总结一下。
简单来说,就是数据对象在计算机中的组织方式,分为逻辑机构和物理存储结构,而数据对象必定和一些操作相关,这些操作就是算法。
这里老师还提到抽象数据类型的概念,就是定义一个数据对象集和其操作集,而不管其具体的实现。举个例子,大家都知道矩阵,也知道它的运算,那么矩阵可以看成一个抽象数据类型,在计算机中具体由python还是C来定义这些细节就不是抽象数据类型关心的了。
抽象的好处在与处理问题的时候只需要关注问题本身,而不用关注底层的实现。
算法的其实就是解决问题的方法,设计算法的时候要考虑时间复杂度和空间复杂度。时间复杂度一般就是考虑最坏情况以及渐进表示,因为最坏情况方便计算,而且算法只需要考虑当数据量大的情形,所以只需要考虑渐进表示。
这部分也是这周的作业,虽然不算很难,但是本菜鸡还是折腾了很久。本周的例子是最大子列,PTA上有两题和此相关,第三题二分法查找算法比较简单,就不列出了。
本科四年玩的比较多,基本没学到什么,临近毕业时才发现自己对AI,机器学习等领域比较感兴趣,故从网上找了一些优秀的mooc和公开课来学习。想借助这个博客记录自己学习的过程,顺便对学习的内容加以总结。
学习的内容主要是两方面,一个是机器学习,还有一部分是CS的基础课程,基本上算从零起步,计划是未来两年半之内学习完,希望自己能坚持下来。
下面帖一下课程汇总,是我在简书上发的帖子: