我创建了Point类,我有一个Point对象的数组列表,我想按mergesort排序。
答案 0 :(得分:0)
假设您正在谈论2D或3D点,您必须考虑定义一个可订购的指标。
考虑2D空间中的示例点(1,0)
和(0,1)
。是(1,0) > (0,1)
吗?还是(1,0) < (0,1)
?这实际上取决于应用程序。
你可以,例如仅将第一个组件作为指标,然后它将是(1,0) > (0,1)
。或者您可以从特定点获取距离,例如原点(0,0)
,在这种情况下它们是平等的。
无论如何,在你决定之后,你可以在互联网上查找现有的排序算法实现(你似乎已经确定了MergeSort)。 http://docs.syncano.io/docs/authentication就是一个例子。
用于各种编程语言中的排序功能的大多数接口都需要键功能(例如“获取第一个组件”或“距离原点的距离”)或自定义比较运算符。