【发布时间】:2012-06-04 19:17:55
【问题描述】:
我正在尝试解决这个问题,但我被困在如何完成这项工作上。我将发布问题,然后解释我在其中的位置。
给定一组总大小为 n 的水平线段和垂直线,我们要计算每条垂直线相交的水平线段数。该算法的复杂度应该是 O(n*logn),并且应该通过排序来实现,然后是线性扫描。水平线段由两个 x 坐标和一个 y 坐标指定,而垂直线由单个 x 坐标指定。输出是一个数字数组 count[l],每个垂直线 l 一个。
对于排序,我想我会按照最早完成的行(即最小的第二个 x 坐标,或者在垂直线的情况下,只是它的一个 x 坐标)对整个集合进行排序,这样我就有了通过所有线的线性进展。我只是对如何进行排序后的线性扫描感到困惑。如果有人有任何提示、提示或指南,我将不胜感激!
PS:这是期中练习,虽然不一定是作业,但我还是会这样标记。
【问题讨论】:
标签: algorithm pseudocode