gpt4 book ai didi

arrays - 复杂度为 O(log n) 的搜索算法,UNSORTED 列表/数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:26:35 25 4
gpt4 key购买 nike

我在一次考试中做了这个练习,它说:

Find an algorithm which can search for the highest number in an unsorted list and have a Big-Oh complexity of O(log(N)).

我发现的唯一具有 log n 复杂度的搜索算法是二分搜索算法,但该算法需要对列表/数组进行排序。

有这样的算法吗?

最佳答案

这是一个有技巧的问题。没有说明列表有 N 个元素。因此,您可以使用变量的更改,并将 N 替换为 2K。现在,使用线性算法解决具有 K 个元素的列表的问题。

如果我们假设列表中有 N 个元素,一个可能的解决方案是使用 N 个并行计算元素 [ CE0 .. CEN ]。在算法的基本情况下,我们让每个计算元素 CEi 在 [ CEN/2 .. CEN ] 比较列表值 x2i-Nx2i-N+1。每个计算元素向 CEi/2 报告其两个分配值中较大的一个。该算法的迭代步骤是每个接收到两个报告值的计算单元CEk报告最大的到CEk/2 。这种迭代逻辑一直持续到 CE0 处理来自自身的报告。它不再向自己报告,而是输出结果。

如果排除并行计算,则问题无解。

关于arrays - 复杂度为 O(log n) 的搜索算法,UNSORTED 列表/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25566307/

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