【发布时间】:2016-12-05 15:56:14
【问题描述】:
这是在我的采访中被问到的,这里问题的实际含义是找到已经按排序顺序排列的元素数组的时间复杂度,或者特别是最坏情况下的时间复杂度。
这里要注意的主要一点是数组中相邻的两个数字之间的差异非常小或不显着。
我将这个问题作为一个简单的二进制搜索来解决,它要求数组按排序顺序并认为最坏情况的时间复杂度是O(log n)。但是如果问题中提到的数组元素彼此非常接近,这个答案会改变吗?
解决这个问题的正确方法是什么。
这绝对不是我要问的问题,因为元素之间的差异略有不同,我们可以使用二进制搜索。
【问题讨论】:
-
您是在问包含所有元素的排序数组与包含大部分元素的排序数组之间是否存在差异?
-
我在问,当所有元素彼此非常接近时,是否可以在搜索中改进最坏的情况
-
数组元素是否像示例中的那样在小范围内连续整数?从不使用字符串或复杂对象?
-
@Joni 是的,整数之间的差异非常小
-
@trincot 我认为数组已排序
标签: arrays algorithm sorting search binary-search