簡體   English   中英

在小於O(n)的字符串中查找字符

[英]Finding character in a string in less than O(n)

是否可以在小於O(n)的字符串中搜索字符。 我遇到的大多數算法都需要O(n)的時間。 string :: find()取O(N * M)。 是否有不需要遍歷整個字符串的算法。

首先,我必須說,您的問題沒有比線性O(n)時間復雜度低的算法。

當然,您可以嘗試像拉斯維加斯思維方式那樣的隨機算法。 如果幸運的話,請從陣列中隨機選擇一個點,如果沒有再嘗試找到它,則存儲錯誤的索引。

最糟糕的情況就像線性搜索O(n),但是如果您很少嘗試就得到它,那就太幸運了。 您可能正在尋找這種算法。 平均而言,它會發現char可能更快,但請記住,當確定k <n仍是線性時間時,是否仍然需要嘗試k次。 好)

如果您知道您的輸入更加也許你能想到的辦法不同的解決它。

希望這可以幫助

暫無
暫無

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

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