Stay hungry Stay foolish

算法学习总结

Posted on By blue

目录



博文未完待续

过去的一段时间,实在是太忙了,好在一些事情已经接近尾声,就琢磨着把之前看过算法相关的书,里面的知识点总结一下。

最一开始直接看的是国内的算法相关的教材,结果自己看得云里雾里, 后来买了《算法》第四版,和《啊哈!算法》两本书,总算有所收获。

并没有完完全全把书中的代码都实际的写一遍,但也都领会了其思想。好吧,直接上思维导图吧。

Spark1.2

其他

下面是自己整理的一些QA,部分答案来源于网络:

1. 归并排序、快速排序的区别?

两者都是用分治法的思想,在数组达到一定长度时,快速排序比较快。原因在于,归并排序后期的合并操作所花费的时间越来越大,合并操作对整体的效率影响越来越明显,包括大量数据的赋值操作等。

2. 深度优先、广度优先的实现和区别?

可以参考这篇文章:Java遍历树(深度优先+广度优先)

3. 算法在Java中的应用

TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但 TreeSet 底层是通过 TreeMap 来实现的,因此二者的实现方式完全一样。而 TreeMap 的实现就是红黑树算法

其他资源

Data Structure Visualizations : 一个算法实现可视化的网站,对理解算法有帮助