【问题标题】:How to sort an Array of Points by MergeSort in Java?如何在 Java 中通过 MergeSort 对点数组进行排序?
【发布时间】:2016-03-30 10:35:30
【问题描述】:

我创建了 Point 类,我有一个 Point 对象的数组列表,我想通过 mergesort 对其进行排序。

【问题讨论】:

  • 可以吗?可以。
  • 谷歌刚刚告诉我是的。
  • @Baldurian 请发布搜索词 :)

标签: java arrays sorting mergesort


【解决方案1】:

假设您谈论的是 2D 或 3D 点,您将不得不考虑定义一个度量标准,以便它们是可排序的。

考虑二维空间中的示例点(1,0)(0,1)。是(1,0) > (0,1) 吗?还是(1,0) < (0,1)?这真的取决于应用程序。

你可以例如仅将第一个组件作为度量,那么它将是(1,0) > (0,1)。或者您可以从特定点获取距离,例如原点(0,0),在这种情况下它们是相等的。

无论如何,在您决定之后,您可以在互联网上查找排序算法的现有实现(尽管您似乎已经确定了 MergeSort)。 Here 就是一个例子。

各种编程语言中用于排序函数的大多数接口都需要一个关键函数(例如“获取第一个组件”或“与原点的距离”),或者一个自定义比较运算符。

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 2011-01-22
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多