1 Java数据结构与算法基础

2017-01-16 22:07:02 1,386

   数据结构与算法是软件开发的重点和难点,最能反映一个开发者的基本功。一个从培训机构出来的开发者,和从高校计算机专业毕业的开发者,可能一开始的时候培训机构出来的开发者,在代码层面比高校学生更加熟练,但是在数据结构与算法、网络、操。作系统等基础知识方面,却远远弱于后者。基础知识越牢固,可塑性就越强,从长期来来说,也越能承担重任,否则只能做一个普普通通的码农。

   学习数据结构与算法的预备知识:

    1、要有一定的数学基础:因为一个算法的效率的衡量,是依赖于数学推导的。本教程不会详细的推导一个算法效率的每一步,但是也会简单的列出一些推导过程,读者了解推导的思路即可。

    2、掌握一门编程语言:数据结构与算法,某种程度上可以说是一种思想,解决某种特定问题的思路,其具有指导意义,但是到具体实现上必须依赖于某一种特定的编程语言,本教程中使用的编程语言是java。


   大部分编程语言都会对一些常见的数据结构与算法提供支持,例如Java中的集合框架。本教程并不是宽泛的谈各种数据结构、算法的实现原理,然后列出一堆代码,会从实战的角度,分析java中已有的实现是什么样子的,并且根据笔者的经验,说明这些数据结构与算法在实际开发种什么情况下需要使用到,以开阔读者的思路。


本系列主要分为2个部分:

1、讲解Java集合框架中的常用类是使用了什么样的数据结构实现的,并结合源码进行分析,包括:

    1、ArrayList

    2、LinkedList 

    3、HashMap

    4、HashSet

    5、TreeMap

    ...

    

2、介绍一些Java中并没有提供的一些数据结构,并讲解如何使用Java代码进行实现,包括:

    Trie树

    Darts

    ...