Algorithms, Part I_Dmoll的博客-程序员宅基地

技术标签: 算法  java  计算机科学  数据结构  

前言

目前我已暂停学习深度学习课程,虽然之前的学习过程很愉快,但我现在想要挑战一下自己。机器学习在很多大学都被分在计算机科学底下,而我又了解到要学习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课程的讲义。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/maryyu8873/article/details/78786369

智能推荐

Linux小知识:查看当前最耗费CPU的线程(Arthas工具)_危险、的博客-程序员宅基地

*本文主要介绍以Arthas工具查看CPU使用情况1.首先,执行下载Arthas工具的命令:curl -L http://start.alibaba-inc.com/install.sh | sh2.启动./as.sh3.执行命令,查看最耗费CPU的2个线程thread -n 2 -i 1000即可根据查出的堆栈信息,分析问题了Arthas 简介Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解

javascript小技巧-js小技巧收集_hongwenshi的博客-程序员宅基地

1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的I

计算机中浮点数的表示方法_Barlow Q的博客-程序员宅基地

计算机中浮点数的表示方法http://cenalulu.github.io/linux/about-denormalized-float-number/可以在这个网址验证自己的想法https://www.h-schmidt.net/FloatConverter/IEEE754.html...

Revit API得到Ribbon控件_weixin_34290352的博客-程序员宅基地

通过Application.GetRibbonPanels("Tab名称");得到RibbonPanel通过IList<RibbonItem>listItem=ribbonPanel.GetItems();得到Panel中的控件//得到Ribbon控件的值[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode...

.metadata下文件夹介绍_不一样的程序员的博客-程序员宅基地_metadata是什么文件夹

eclipse 修改配置服务器启动时间workspace.metadata.plugins\org.eclipse.wst.server.core\servers.xml文件tomcat项目临时目录一般是workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\webapps\下jsp临时文件在你的工作区间works...

SYNOPSYS VCS常用命令使用详解_limanjihe的博客-程序员宅基地

VCS对verilog模型进行仿真包括两个步骤:1. 编译verilog文件成为一个可执行的二进制文件命令为:vcs source_files2. 运行该可执行文件:./simv类似于NC, 也有单命令行的方式:vcs source_files -R-R 命令表示, 编译后立即执行。vcs常用的命令选项如下:-cm line|cond|fsm|tgl|obc

随便推点

MAC上环境变量PATH的几种配置方法_mrsyf的博客-程序员宅基地_mac配置path环境变量

Mac一般使用bash作为默认shell。环境变量的加载顺序为:/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量,按照从上到下的顺序读取,如果~/.bash_p

echarts实现下钻功能的地图_饮一杯的博客-程序员宅基地_echarts地图下钻

实现步骤初始化,获取全国的坐标json数据绘制中国地图,同时监听点击事件,使用递归方式实现下钻功能点击下一层级,获取对应地区的坐标json数据–添加监听事件–实现下钻注:getGeoJson方法是获取阿里云的地图坐标数据阿里云地图APIvue实现代码<template> <div id="mainMap"></div></template><script>import echarts from "echarts";im

SqlBulkCopy大批量数据插入到sql表中_weixin_30517001的博客-程序员宅基地

alter TYPE TableType AS TABLE( Name VARCHAR(50), code VARCHAR(50) )GOalter PROCEDURE usp_InsertProductionLocation @TVP TableType READONLY AS SET NOCOUNT ON if obje...

不同网段访问海康流媒体_邹邹s的博客-程序员宅基地

A.两个不同网段的局域网可以使用路由/软路由进行转换访问 1.设置各个DVR的网关指向路由网关192.168.0.1 2.设置不同网段PC机的网关指向路由网关10.0.0.1 3.增加一个路由访问 192.168.0.0/255.255.0.0 10.0.0.1 那么PC机就可以直接访问各个DVR与流媒体B.外网访问局域网的要点(以下是转帖) 嵌入式硬盘录象机本身有24路访问限制。多客户访

亿信华辰教你避开四大坑,让数据可视化点石成金_辰哥爱学习的博客-程序员宅基地

字不如表,表不如图,优秀的数据可视化往往能对复杂的数据起到点石成金的效果,不仅能让数据更直观易懂,还能帮助洞察数据内涵、辅助决策。但就像做菜一样,将未加工的食材处理成为可口的饭菜需要合适的方法和火候,将原始复杂的数据用图表的方式精妙呈现也需要正确的工具和技巧,不然一不小心可能就会成为“黑暗料理”,让受众不知所云,甚至会误导判断。比如路透社在2014年发布的《21世纪初枪支死亡人数统计图》就是一个误导判断的数据可视化的典型案例。 翻转的Y轴使得读者并没有意识到21世纪...

推荐文章

热门文章

相关标签