【发布时间】:2013-12-16 05:19:42
【问题描述】:
假设给定一个包含 n 个点(坐标对)的数组。我想生成一个二维点数组,其中 ith 行的所有元素都根据它们与 ith 点的距离进行排序。可能有更好和更有效的算法来获得最终结果,但出于某些原因,我想通过 naive 算法来做到这一点,即蛮力。我也不想编写自己的排序函数。
在 C 语言中,可以使用 qsort 函数,但它的比较函数只需要两个参数,而我需要传递三个参数:参考点和其他两个要比较的点。
在 Python 中也可以使用sorted 函数,但同样,它的关键函数只需要一个参数,而在这种情况下,我需要传递两个参数。
那我该怎么做呢?
【问题讨论】:
-
您的设置中的“行”是什么?
-
肮脏的解决方案:将参考点作为全局变量传递。
-
在二维数组中,第 i 行包含所有 n 个点,根据它们与点 a_i 的距离排序,其中 a_i 是输入的一维数组中的第 i 个点。
-
@chux: 是的,应该可以的
标签: python c arrays algorithm sorting