gpt4 book ai didi

arrays - 在 O(log n) 中搜索未排序数组中的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:40 24 4
gpt4 key购买 nike

我的 friend 在考试中出了一道题,题目是:

You get an unsorted array with integer values as pairs , and 1 value as single for example:

[1,1,5,5,2,2,4,4,7,12,12,8,8]

The output is: 7

现在我知道二进制搜索可以用 O(log n) 来完成,但是数组需要排序。

那么如何在 O(log n) 中在这个未排序的数组上完成呢?

最佳答案

如果值对彼此相邻,您还可以在未排序的数组中进行二分查找:

  1. 拆分必须有 2n + 1 个元素的数组,如下所示:<n elements> <1 element> <n elements> :
  2. 比较中间元素第一部分的最后一个元素第二部分的第一个元素:
    • 如果不等于,则已找到单个元素
    • 否则,将中间元素添加到具有相同元素的部分(如果它等于第一部分的最后一个元素,则将其附加到第一部分,否则将其作为第一部分添加第二部分的元素)
  3. 元素数量为奇数的部分重复上述步骤

关于arrays - 在 O(log n) 中搜索未排序数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52039362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com