您的位置:首页 > 编程语言 > Go语言

Algorithms, Part I

2017-12-12 21:31 155 查看
[b]前言[/b]

目前我已暂停学习深度学习课程,虽然之前的学习过程很愉快,但我现在想要挑战一下自己。机器学习在很多大学都被分在计算机科学底下,而我又了解到要学习compute science几乎不可能绕过数据结构和算法这一部分内容,这一部分的知识也决定着一个高级程序员的功底。

为了补充自己在数据结构和算法这一部分的知识,我决定修一门相关的课程,选来选去最终决定学习普林斯顿教授在Cousera开设的一门算法课。这门课程是基于Java语言讲解的,所有的编程作业都需要用Java完成,由于我之前从未了解过Java这门语言,是真正的零基础。为了应对这门课程,我又在实验楼快速补充了Java编程的基础知识。我觉得自己会Perl、Python和R语言,熟悉编程思想,想要学会Java应该不是一件遥不可及的事情。

该课程第一周的内容为如何快速合并并查找目标的类别。

怎样在迷宫图中,判断两点之间是否相连?



可以采用Quick-find的方法:



然而这个方法太慢了,作者又提出了一种树形结构的Quick-union的方法



然而上述两种方法正像它们的名字一样,Quick-find在union的时候很慢,Quick-union在find的时候很慢。

weighted quick-union 是quick-union的升级版。





三种方法运行时间的比较:



Quick union with path compression是另一种速度比较快的方法。



总结比较



(第一次写这门课程的笔记,有点无从下手的感觉,难道是我理解得不够——反正第一次编程作业折腾了我好长时间)

注:如无特殊说明,以上所有图片均截选自Coursera平台algorithms课程的讲义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: