【问题标题】:Java Sorting AlgorithmJava 排序算法
【发布时间】:2011-05-14 01:59:17
【问题描述】:

谁能解释一下这句话吗?

排序算法是经过修改的 合并排序(其中合并是 如果中的最高元素省略 低子列表小于最低 高子列表中的元素)。

链接:Arrays.sort(Object[] arr)

我知道 Merge 的工作原理,但我仍然不太了解。 谢谢。

【问题讨论】:

    标签: java arrays sorting


    【解决方案1】:

    Mergesort 递归地合并排序的子列表。如果当前符合合并条件的子列表不包含重叠元素,则无需合并它们。合并操作将被跳过。

    例子:

    List A
    1 4 8 9
    
    List B
    10 12 14 19
    

    没有必要通过比较这些列表的过程,因为 9 是 A 的最大元素,而 10(B 的第一个元素)大于 A 的最大元素。结果将只是 A 的串联和 B。

    所有文件都在说,如果不需要综合处理,他们会走捷径。

    【讨论】:

      【解决方案2】:

      假设您正在进行合并排序,并且即将合并您的两个已排序子列表[1, 3, 4][2, 5, 6]。然后你必须运行你的合并算法,将两半交错成整个[1, 2, 3, 4, 5, 6]

      [1] + [2] + [3, 4] + [5, 6] = [1, 2, 3, 4, 5, 6]
      

      但是,假设在您对两半进行排序之后,您有 [1, 2, 3][4, 5, 6]。低子列表 (3) 中的最高元素小于高子列表 (4) 中的最低元素。无需合并两个子列表;您可以简单地将它们连接在一起。

      [1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-04
        • 2013-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 1970-01-01
        相关资源
        最近更新 更多