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_Convex Hull - Fatal编程技术网

Sorting 利用凸壳算法对整数进行排序

Sorting 利用凸壳算法对整数进行排序,sorting,convex-hull,Sorting,Convex Hull,二维凸包的算法使用排序。假设有人 为您提供了一个库,其中凸包实现为黑盒。展示你是如何 将使用凸包算法对给定整数序列进行排序。这个 短语“黑匣子”意味着您没有查看代码内部;你只知道 输入和输出是什么,结果是什么。你不能“拉” 从库中实现的凸包排序算法。你 可以假设您可以调用凸包算法作为基本步骤 将整数视为位于x轴上的点(即y坐标为零)。将这些点反馈给凸包算法。如果算法不足以处理这种退化情况,则将每个整数分成两个点(x,1)和(x,-1)。作为算法的输出,您将获得形成闭环(多边形)的点。绕一圈,找到

二维凸包的算法使用排序。假设有人 为您提供了一个库,其中凸包实现为黑盒。展示你是如何 将使用凸包算法对给定整数序列进行排序。这个 短语“黑匣子”意味着您没有查看代码内部;你只知道 输入和输出是什么,结果是什么。你不能“拉” 从库中实现的凸包排序算法。你
可以假设您可以调用凸包算法作为基本步骤

将整数视为位于x轴上的点(即y坐标为零)。将这些点反馈给凸包算法。如果算法不足以处理这种退化情况,则将每个整数分成两个点(x,1)和(x,-1)。作为算法的输出,您将获得形成闭环(多边形)的点。绕一圈,找到x最小的点,然后点的x值增加表示排序后的整数


同样,如果凸包算法在处理位于同一条直线上的边界点时遇到问题,请使用y值的平方整数来强调凸性-当然,如果所有整数都是非负的,则这一点。如果有负整数,则在计算Y值之前,需要减去最小值。< / P> < P>对于整数序列,每个整数的输入席A=[x1,…,xn],n=αa,创建其对应点(席,席^ 2),然后在2D空间中合成n个点。这些点形成一条抛物线,它是一条凸曲线。在线性时间内,您可以检查点以检测最左边的点pl,然后您可以从点pl向右遍历凸包,以生成数字x1、…、xn的排序顺序


由于Ω(n logn)是基于比较的排序的下界,我们可以认为凸包所需的时间不少于此值,否则排序可能比其下界便宜,这将导致收缩。

允许进行哪些其他操作(凸包过程之外?)我假设不比较整数?凸壳过程不能保证它返回的壳点的顺序?