在面试的时候有两家公司有跟我强调数据结构,我想知道的是现实当中大家有涉及到很多数据结构方面的东西么?会用到很多复杂的算法么?有得话麻烦举个例子。
我感觉java好像很多东西都给我们封装好了,不知是否在学校做的东西太小儿科,所以基本上都没有用到什么复杂的算法,而自己大二学的数据结构和算法也忘得差不多了

解决方案 »

  1.   

    一般是比较好的公司会比较重视这个,因为他们开发从东西复杂度相对比较高,需要很好的思维习惯和算法基础。数据结构正好提供了这些东西(思维工具)。还有,虽然java这样的高级语言封装了很多底层的算法,如堆栈,队列,排序。实际工作中也通常不需要你自己重新写一个排序的程序,但是,了解这些基本算法,对于你构思更复杂的程序,很又好处。而且,对于API的选用,你需要对底层的东西了解比较深入,才能更好的理解各种API的细微差别。比如TreeMap和HashMap,它的接口几乎是一样的,但是各有不同;同样,LinkedList和ArrayList也有自己的特点和用途。
      

  2.   

    to orangemike(纯学习) 说的有一些道理!
    但是:
    >>>但是在应用层面,很复杂的数据结构和算法很多时候成为重构的杀手。尤其是代码易手后,接替者会很难受。这只能说明写这些代码的人功力还不够,应该不是“数据结构”的错吧,要不它也太冤了!:)
      

  3.   

    >>>很复杂的数据结构和算法很多时候
    这种情况可能可以使用Strategy
      

  4.   

    >>>很多人喜欢用一个特殊的数据构造来代替对象
    严重不赞成这么做!如果真有这种情况,一般是此人不太理解面向对象
      

  5.   

    常用的无非list ,map ,tree ,栈 。 树结构要好好研究。还有一个可能会常用的是“图”,又很多实际问题可以归结到图的概念上。
    其他的我也没用过了/
      

  6.   

    顶~~算法其实很有意思的,JAVA中的集合应该好好研究一下!