【问题标题】:Efficient implementations of Searching & Sorting Algorithms in JavaJava中搜索和排序算法的高效实现
【发布时间】:2012-04-26 22:32:41
【问题描述】:

有没有人对一组常见的搜索和排序算法的 Java 代码实现有很好的参考。

给猫剥皮的方法有很多种(在网上很容易找到各种算法的 Java 代码),但是是否有 Java 中实现这些算法的最有效方法的列表?

例如http://www.algorithmist.com,但大多数实现都是在 C/C++ 中。

干杯!

【问题讨论】:

    标签: java performance algorithm search sorting


    【解决方案1】:

    https://intelligentjava.wordpress.com/2014/07/05/sorting-algorithms/ 对实现和性能比较基准进行了很好的审查。

    【讨论】:

      【解决方案2】:

      地图、集合、列表等的一些标准算法可用。你必须 download the src.zip from the Oracle-Java homepage,它是可用的。

      对于常见的用例,算法应该非常有效,但当然,对于每个算法,都需要提供数据的最坏情况。因此,在特殊情况下,您将能够找到或生产出更好的产品。

      【讨论】:

        【解决方案3】:

        我建议查看 Java 标准库源代码本身。

        CollectionsArrays 类具有可以学习的二分查找和二分排序实现。

        这里是来自 openjdk 的 Collections.java 的源代码:http://www.docjar.com/html/api/java/util/Collections.java.html

        【讨论】:

          【解决方案4】:

          算法的运行时复杂度与实现它的编程语言无关 - 所以你不应该真的太在意。但是既然你问了,我会考虑使用grepcode。例如,当我搜索“java quicksort”时,看看我found 是什么。

          【讨论】:

          • 是的,我明白,核心是相同的,但一些 impl 的开销更大,在不需要的地方使用额外的变量(比如保持计数器等)。
          • 两点:1、如果你懂,那你为什么在乎?一旦您开始使用足够大的数据集,impl 收益就会被淹没。 2. 因为你问,我明确列出了 grepcode。
          【解决方案5】:

          我发现 Sedgewick 的“Java 算法(第 1-4 部分)”一书很有用。代码是available online,但是没有书可能很难理解。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-02-22
            • 1970-01-01
            • 1970-01-01
            • 2018-12-10
            • 1970-01-01
            • 1970-01-01
            • 2021-07-15
            相关资源
            最近更新 更多