gpt4 book ai didi

algorithm - 为什么k元搜索的比较平均是k*ln(N)/ln(k)?

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

我知道该函数执行了 ln(N)/ln(K) 次;但平均而言它执行了 K 次操作吗?

问题:

  1. 有没有证据表明 k*ln(N)/ln(K) 是平均执行次数?
  2. 如果这个公式是正确的,那么三元搜索将是最快的搜索,因为 k/ln(k) 将是最小值(对于整数),因为 3 是最接近“e”(实数最小值)的整数,这很容易证明使用微分。

此外,我认为三元搜索更快;因为我制作了一个比较计算机程序。

最佳答案

  1. 不,因为正确答案是 (k - 1) log n/log k + O(1):只需要 k - 1 次比较(实际上只需要 lg k + O(1))来减少搜索范围的大小 k 倍。这可以通过对递归 T(1) = 1, T(2) = 2, T(n) = (k - 1) + T(n/k) 的归纳来证明。

  2. (k - 1)/log k 的整数 argmin 出现在 2 处。有很多计算机体系结构原因可以说明为什么三元搜索无论如何都可能更快。

关于algorithm - 为什么k元搜索的比较平均是k*ln(N)/ln(k)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9259532/

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