簡體   English   中英

具有時間復雜度O(lg n)的搜索函數

[英]Search function with time complexity O(lg n)

我需要創建一個具有時間復雜度O(lgn)的搜索函數,該函數將返回某個值x將進入元組的位置。

例如, search(8, (2, 7, 12))將返回2,
search(-5, (2, 3, 4, 10))將返回0並
search(6, (4, 6, 12))將返回1.元組已經排序
我寫了以下代碼:

    def search(x,seq):
        for i in seq:
            if x<i:
                return seq.index(i)
            elif x == i:
                return seq.index(i)
            elif x>seq[-1]:
                return (seq.index(seq[-1]))+1

該代碼是否具有時間復雜度O(lgn)?

您當前的解決方案是O(n)

由於您提到了一個元組將始終處於排序順序,因此您可以應用在O(lg(n))運行的二進制搜索來找到適當的索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM