在O(n log n)时间内在集合中找到两个不同的数字,以便它们的差异是所有对中的最小值

时间:2013-03-29 03:52:40

标签: algorithm set

如何在O(n log n)时间内在未排序的集合S中找到两个不同的数字a和b,以便| a-b |所有可能的对中最小的一对?

1 个答案:

答案 0 :(得分:1)

首先,使用例如快速排序对列表进行排序,即O(n log n)。

然后在列表中进行单次传递,测量每个数字与下一个数字之间的间隔,并跟踪您看到的最小间隔。那是O(n)。

O(n)+ O(n log n)= O(n log n)