cousera跟着书的原作者学习《算法》第四版。记录以下学习进度。

课后习题代码见我的GitHub

2018.09.22 : Priority Queues

  使用完全二叉树实现优先队列

  传统算法都好神奇,这里只需要用一个数组就可以表示完全二叉树。然后通过这个完全二叉树实现优先队列、优先排序。

  然后作业的数字推盘游戏实现前完全没有头绪怎么做,实际上就是一个启发式搜索,使用了优先队列来判断下一个搜索方向。优雅的实现 ​​​​

2018.09.18 : Mergesort

  归并排序,迭代的方法来实现的。现在感觉过视频的方法记忆不太深刻,要搭配这多写点代码了。

2018.09.11 : Elementary Sorts

  学习了三个初级排序方法,选择排序,插入排序,希尔排序。希尔排序通过改造插入排序,只增加少量代码,并且不适用额外空间的情况下,加快了排序速度,很适合嵌入式或简陋的环境下使用。之后又讲了洗牌,小bug造成大错误啊,要训练自己少犯。

2018.09.11 : Stacks and Queues

  讲栈和队列,虽然之前对定义有了解,但是并没有深入了解、实现。这里学会了使用链表和变长数组实现,并且讨论了两者的区别,见下表。变长数组占用更少的内存,两者平摊时间相同,但是最坏的情况(需要改变数组长度)时,单次时间较长。当需要考虑系统实时性时,使用链表实现,其他情况可使用变长数组。

  内存 平摊时间(amortized time) 单次时间
链表 40N constant O(1)
变长数组 8N~32N constant O(N)

  对于java语言特性,学到了泛型编程和迭代器。都是好东西,要多用用。

  算法题真的能惊艳到自己,这一节中,两个题让我很震惊。

    一个是使用两个栈来实现队列,并要求做到constant amoritized time.具体的解答在SO上有。how-to-implement-a-queue-using-two-stacks

    另一个就是题目里的extra部分,学到了一个叫水塘抽样(Reservoir sampling)的方法,这个真的节约内存。具体见wiki:水塘抽样

2018.09.02 : Union−Find & Analysis of Algorithms

  入个门,简单了解了java语法,完成了作业。系统自动批改作业反馈真详细啊,这应该就是写的好的单元测试。

Algorithm-4th part I 学习进度 (7/12)的更多相关文章

  1. 2019面向对象程序设计(java)课程学习进度条

    2019面向对象程序设计(java)课程学习进度条 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序阅读或编程任务 1 20/10 1/0 5 九九 ...

  2. 201871010106-丁宣元 《2019面向对象程序设计(java)课程学习进度条》

    <2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序阅读或编程任务 1 25/10 ...

  3. python学习之旅1-2(基础知识)

    三,python基础初识. 1.运行python代码. 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确定后 写入代码pytho ...

  4. N47-冯天驰-学习进度计划表

          马哥就业课程学习进度规划--N47-冯天驰 第一周 6.1-6.7                                                       8. 06- ...

  5. DHTML 教程学习进度备忘

    书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1.这个学习进度和前面几个学习进度,只是学习了 ...

  6. 第三周学习进度条+PSP0过程文档

    第三周学习进度条    第三周 所花时间(包括上课) 14:30-15:35(65)+19:00-21:20(140)+17:52-19:00(68)+19:10-20:45(95)+21:00-22 ...

  7. NABCD框架(作业和事件的定期提醒)及第八周学习进度条

    NABCD框架(作业和事件的定期提醒): N(need,需求): 你的创意解决了用户的什么需求? 我们的创意能够一定程度上督促我们的用户(学生)尽快完成自己近期的任务或者是作业.我们认为如果增设定时提 ...

  8. 本周java 学习进度报告

    本周java 学习进度报告 本周对我的感触很深,因为这是我初学java 语言的第一周,我认识到java 和c语言是有很多的不同之处和相同之处.我这几天几乎是在研究java 基础入门知识,而并没有太多的 ...

  9. 深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全

    深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全 原文地址:Image Completion with Deep Learning in TensorFlow by Bra ...

随机推荐

  1. C#编译器选项(目标平台)

    用vs编译C#项目的设置中,“属性-生成-目标平台”有anycpu,x86,x64等选项. anycpu(默认值)将编译程序集为使其在任意平台上都可以运行. 在任何可能的时候,应用程序作为 64 位进 ...

  2. mysql字符太长警告

    用navicateclient,打开相应的数据库. 打开函数.找相应的val()函数,进行编辑,就能够!编辑范围为4000

  3. Mysql 基本操作指令+增删查改

    nqinx是web前端服务端 负载均衡(软件)可以将用户请求调度到几台机器的nqinx上去做 ,一般都有两个负载均衡,一个做备用硬件的要比软件的好,但是一般公司都用软件实现数据库软件其实也是一个服务端 ...

  4. MyBatis学习(二):与Spring整合(非注解方式配置MyBatis)

    搭建SpringMVC的-->传送门<-- 一.环境搭建: 目录结构: 引用的JAR包: 如果是Maven搭建的话,pom.xml的配置如下: <?xml version=" ...

  5. jQuery UI Autocomplete是jQuery UI的自动完成组件

    支持的数据源 jQuery UI Autocomplete主要支持字符串Array.JSON两种数据格式. 普通的Array格式没有什么特殊的,如下: ? 1 ["cnblogs" ...

  6. 对JavaBean创建的一点改进

    在看了<Effective Java>Item2中对JavaBean的描述后,再结合Item1和Builder模式,遂想有没有其他方式避免JavaBean创建的线程安全问题呢? 以如下Ja ...

  7. Apache/2.4.9启动错误:AH01630: client denied by server configuration

    在升级Yii框架1.11->2.0beta时,PHP升级到5.5.顺带升级Apache2.2.x到2.4.9. 把原有vhost配置移植过来,出现Apache启动错误: AH01630: cli ...

  8. mongodb 安装、启动

    MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1   最近有太多的同学向我提起MongoDB,想要学习MongoDB,还不知道MongoDB到底是什么鬼,或者说,知道是数据 ...

  9. javaweb开发之jsp

    一.WEB应用的目录结构 通常我们是在IDE中创建web应用程序,IDE自动为我们实现了WEB的目录结构,下面来看如何徒手创建一个WEB程序. 首先来看一下Tomcat自带的一个web应用的目录结构 ...

  10. select version();desc mysql.user;

    D:\wamp64\wamp\bin\mysql\mysql5.6.17\bin>mysql -hgoDev -uroot -ppasswordWarning: Using a password ...