有什么方法可以确定索引是否等于向量的元素?

时间:2019-03-26 17:10:44

标签: python arrays vector indexing

使用分而治之的方法,我试图做一个算法来比较向量的索引是否等于此位置的元素。我已经看到我的代码在大向量中效率低下,因此我一直在考虑将向量分成两半来实现,但是我不知道该怎么做...

def indicePosicion (inicio, lista):   
    if lista == []:
        return -1
    elif int(lista[0]) == inicio:
        return inicio
    else:
        return indicePosicion(inicio+1, lista[1:])

numero = int(input())
lista = input().split()
print(indicePosicion(0, lista))

我介绍向量中元素的数量: 7 介绍用空格分隔的元素: -3 -1 2 5 6 7 9 输出应该是 2 元素等于位置的地方

2 个答案:

答案 0 :(得分:0)

  

“我发现我的代码在大向量上效率低下”

如果未对输入数组进行排序,则最高效的代码将具有O(n)的时间复杂度,因为我们必须逐个元素进行迭代并将索引与值进行比较。在这种情况下,使用分而治之是没有意义的,只会增加复杂性。

如果输入数组已排序,则可以使用二进制搜索的修改版本来实现O(logn)时间复杂度。

答案 1 :(得分:0)

仅获取let j = this.i; j < this.categories.length; j++)等于index的索引列表如何?

element