Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 从最近到最远对点进行排序_Sorting_Math_Pseudocode_Plane - Fatal编程技术网

Sorting 从最近到最远对点进行排序

Sorting 从最近到最远对点进行排序,sorting,math,pseudocode,plane,Sorting,Math,Pseudocode,Plane,是否有一种算法可以给出一组点: p1(10,-4)p2(8,3)p3(6,-4)和p4(5,1)返回从最近点到最远点的顺序,每次开始点都会改变? 我的意思是,在我的例子中,我从p0(7,0)开始,所以我想要一个排序算法,它返回我p4,p2,p1,p3,因为当选择p4作为与p0最接近的点时,我的起点变成p4。然后我选择p2,它最接近p4,然后是p1,ehich最接近p4,最后是p3,它最接近p1。 该算法必须在O(nlogn)中运行,这听起来像是一个最小生成树,请尝试使用的算法并将加法顺序存储在一

是否有一种算法可以给出一组点: p1(10,-4)p2(8,3)p3(6,-4)和p4(5,1)返回从最近点到最远点的顺序,每次开始点都会改变? 我的意思是,在我的例子中,我从p0(7,0)开始,所以我想要一个排序算法,它返回我p4,p2,p1,p3,因为当选择p4作为与p0最接近的点时,我的起点变成p4。然后我选择p2,它最接近p4,然后是p1,ehich最接近p4,最后是p3,它最接近p1。
该算法必须在O(nlogn)

中运行,这听起来像是一个最小生成树,请尝试使用的算法并将加法顺序存储在一个列表中,这样您就可以得到排序

看看这个来自维基百科的非常酷的动画


复杂性取决于所选的优先级队列。

使用k-d树,您可以在预期的O(logn)时间内查询最近的点,也可以在预期的O(logn)时间内删除它们,从而给出预期的O(logn)时间算法。预期的时间足够好吗?