Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm n元搜索的时间复杂度。_Algorithm_Time Complexity_Binary Search - Fatal编程技术网

Algorithm n元搜索的时间复杂度。

Algorithm n元搜索的时间复杂度。,algorithm,time-complexity,binary-search,Algorithm,Time Complexity,Binary Search,我正在研究N元素中的二元搜索、三元搜索和k元搜索的时间复杂性,并给出了它们各自的渐近最坏情况运行时。然而,我开始怀疑如果我将N个元素划分为N个范围(或者称为N个元素中的N元搜索),会发生什么。这会是数组中的排序线性搜索,从而导致运行时为O(N)?这有点令人困惑。请帮帮我 你说的是对的 对于k-ary搜索,我们有: 执行k-1检查边界以隔离k范围之一 跳入从上面获得的范围 因此,时间复杂度基本上是O((k-1)*log_k(N)),其中log_k(N)意味着“log(N)到基k”。这在k=2时有一

我正在研究N元素中的二元搜索、三元搜索和k元搜索的时间复杂性,并给出了它们各自的渐近最坏情况运行时。然而,我开始怀疑如果我将N个元素划分为N个范围(或者称为N个元素中的N元搜索),会发生什么。这会是数组中的排序线性搜索,从而导致运行时为O(N)?这有点令人困惑。请帮帮我

你说的是对的

对于
k-ary
搜索,我们有:

  • 执行
    k-1
    检查边界以隔离
    k
    范围之一
  • 跳入从上面获得的范围
  • 因此,时间复杂度基本上是
    O((k-1)*log_k(N))
    ,其中
    log_k(N)
    意味着“
    log(N)
    到基
    k
    ”。这在
    k=2
    时有一个最小值

    如果
    k=N
    ,时间复杂度将是:
    O((N-1)*log_N(N))
    =
    O(N-1)
    =
    O(N)
    ,这在算法和复杂度方面与线性搜索相同

    转换为上述算法,它是:

  • 执行
    N-1
    检查边界(每个前
    N-1
    元素),以隔离其中一个
    N
    范围。这与第一个
    N-1
    元素中的线性搜索相同
  • 跳入从上面获得的范围。这与检查最后一个元素(在恒定时间内)相同

  • @请更新你的问题。已经快一个月了。目前的声明远没有先前未经编辑的问题那么有意义。