代码之家  ›  专栏  ›  技术社区  ›  Chankey Pathak

一本Java书够了吗?还是我应该先学习算法[[关闭]

  •  5
  • Chankey Pathak  · 技术社区  · 14 年前

    我必须学习算法才能用Java编写程序吗?

    我想成为一个成功的企业开发者。那么我应该精通哪些算法和数据结构呢?你推荐我什么书?

    PS:我在过去的学期里有C和C++,我在他们中有好成绩,但这有点像是抢劫。我知道编程的基本知识。我不是新手。问题是,我没有健全的知识,在任何语言,我想成为一个开发人员,而不是一个算法。

    5 回复  |  直到 14 年前
        1
  •  10
  •   Jens Schauder    14 年前

    学习这些东西没有固定的顺序。既然学习在你有动力的时候效果最好,那就选择你最感兴趣的或者对你帮助最大的。在这里学一点,然后在那里学一点。睁大眼睛,多练习,你会没事的。

    同时阅读“干净的代码”,“务实的程序员”和固体 http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

        2
  •  2
  •   johncip    14 年前

    Data Structures & Algorithms in Java .

    1. 基本了解Java和OO。特别是遗传和多态性
    2. 对Big-O有一个基本的了解 (它是如何定义的,为什么你可以 删除低阶项)。
    3. 对单链和双链表进行编码。它们应该实现Iterable并支持添加和删除元素。 使用它们实现堆栈和队列。

    一旦你读了一本像这样的书,就要知道一些事情 :

    • videos lectures 从那个班上来的 是为它的作者之一写的。
    • 像这样的书的目的 算法 不仅仅是向您展示特定的算法,而是教您如何分析它们的运行时间。你需要少量的离散数学,基本上是求和和和递归关系。看看这里的大问题,看看我的意思。

    Programming Abstractions (Stanford, Julie Zelenski) . 我很高兴这些存在。

    (碰巧我正在用 binary search tree .)

        3
  •  2
  •   Steve314    14 年前

    您不需要了解所有的Java来试验实现算法。您将需要能够在单个类中包装几个方法(通常只有一个方法)(甚至这只是因为Java坚持所有方法都是一个类)。您将需要条件和循环构造和数组。对于数据结构,您可能需要理解Java引用,尽管您可以使用整数作为数组下标来伪造指针。

    关键是算法很重要,但规模相对较小。数据结构通常需要一些算法才能工作。但是你不需要了解更大规模的问题,比如面向对象的设计来试验算法。

    编辑

    从评论中,我看到你已经很好地进入了“何去何从”的阶段。

    不要忘记算法(或离散数学),因为你不关心分析。广泛(不一定是深入)的理解是一个有用的资源-他们是伟大的解决问题的方法。

    了解拓扑排序使最后一步变得微不足道。忘记了强连接的组件花费了我不少时间。了解Tarjans强连通组件算法的工作原理。。。维基百科和几分钟的纸笔就足够了,一旦你知道该找什么了。

    事实上,我应该承认-“我被提醒”意味着我查阅了Dobbs博士的一篇关于拓扑排序的老文章,这篇文章使用了相同的方法。

        4
  •  2
  •   andr Gal Mathys    12 年前

    我建议你先从头脑开始学习。 functionx.com 也是一个很好的网站。大多数Java书籍都将算法描述为本书的一部分,所以不要担心算法。首先学习Java。

    amazon.com wowebook.be .

    我推荐michaelt的“Java中的数据结构和算法”。古德里奇和罗伯托·塔马西亚。 《像程序员一样思考》是与算法相关的好书。

        5
  •  0
  •   user268758    14 年前

    @Chankey:根据我的说法,你应该同时掌握java和算法。首先学习Java编程语言的一些基础知识,如类、数据类型、函数等,然后学习排序和搜索的一些基本算法。现在应用java知识来实现这些算法。

    干杯!!