前半题 PointSet 没有任何难度,后面的 KdTree 却需要异常小心的去实现,算法第一部分五题至此全部完成,但是今后算法之路还很远。 ...
分类:
编程语言 时间:
2016-09-27 18:04:11
阅读次数:
773
相比前一题而言这一题要简单多了,虽然题干很长,有些关键点要理解可能比较困难,但是有了前面几题的积累,基本上没有什么难度,另外PriorityQueue本身理解、使用起来都相当简单。 ...
分类:
编程语言 时间:
2016-09-27 17:44:33
阅读次数:
1434
本题可以说是比较富挑战性的第一题,光是看题目就可以看上一个小时,后面几题都需要看很久,但实现难度会下降,主要考验学生对排序算法运用的能力,并没有考排序算法本身,这也就是算法这门课的优势,授人以鱼不如授人以渔。 ...
分类:
编程语言 时间:
2016-09-25 13:13:13
阅读次数:
1551
和习题一类似,这道题是为了让学生对作业套路更加熟悉,为以后的学习打基础,不同于上一习题注重编写逻辑和第三方调用、基础输入输出,这道题更偏重API和实现自己的数据结构。 ...
分类:
编程语言 时间:
2016-09-25 12:02:17
阅读次数:
1152
作为第一道作业题,题目本身并不困难,让学生熟悉JAVA编程,熟悉作业的套路。因为视频中老师有对整个问题最难点的介绍,作业布置中也有,所以看过的同学基本上实现起来不会有难度。 ...
分类:
编程语言 时间:
2016-09-25 10:40:45
阅读次数:
667
上面的代码是算法导论里给的伪代码例子,是一种升序的写法,那降序的怎么写呢: 在给一个选择排序的算法(升序): 线性排序的方法里还有个冒泡,就是两两互换,也是线性的。下一篇讲解分治。 ...
分类:
编程语言 时间:
2016-09-23 14:42:21
阅读次数:
177
动态规划
个人对动态规划的理解:
1.动态规划是一个付出额外空间来节省时间,就是所谓的空间换时间。
2.动态规划储存每个状态的最优解。
3.动态规划是用来把子问题的结果储存下来,再次用到的时候就不必再...
分类:
编程语言 时间:
2016-09-22 20:02:43
阅读次数:
296
第一次在《算法导论》中看到这三种渐进记法的符号,当时对此一窍不通,所以也就没有注意它们,直接把他们忽略了,知道学习算法的时候,才知道当初的做法有多傻,因为一个算法的好坏以及复杂度,可以用它们来表示。现在我学习过程当中用的最多的是O(g(n)),大概是老师认为我们还不具有算法设计分析与优化的能力吧。 ...
分类:
其他好文 时间:
2016-09-22 01:02:16
阅读次数:
321
如果要转载,需要注明出处: http://blog.csdn.net/xiazdong 本文是 http://blog.csdn.net/xiazdong/article/details/7304239 的补充,当年看了《大话数据结构》总结的,但是现在看了《算法导论》,发现以前对排序的理解还不深入, ...
分类:
编程语言 时间:
2016-09-17 20:31:29
阅读次数:
260
最近在看《算法导论》这本书,在练习题当中发现了这样的一个问题:使用二分查找法来实现插入排序,由于之前的内容当中有讲解二分法的递归实现,所以在这便将它们结合起来希望解决这个问题。闲话不多说了,直接上代码: 算法思路很简单,无非是将原来的线性查找被排序元素的合适的位置的部分换成了使用二分法来查找合适的位 ...
分类:
编程语言 时间:
2016-09-15 11:06:08
阅读次数:
159