0
A
回答
4
二進制搜索運行排序輸入。您也可以在單詞上定義order,而不僅限於值。例如,lexicographical order。在Java中,這甚至實現爲String
的自然順序。所以你可以做"text1".compareTo("text2")
,它會返回訂單。
二進制搜索的一個小例證:
正如你看到的,唯一在算法決定的,是兩個物體之間的順序。例如,從圖像中,7 < 14
和7 > 6
。如上所述,您也可以爲String
s執行此操作。事實上,對於的所有內容,其中您的定義了訂單。
其實很多類(超過150
更多)實現自然秩序,它們在接口Comparable
(documentation)中列出,它們都提供一個compareTo
方法與有意義的順序。
0
想想在詞典中查找單詞;這是二進制搜索的一個例子。
例如,讓我們仰望「eunoia」:
- 你翻開字典大約「E」部分,但也許你去得有點過分了和「M」部分中結束。
- 你翻轉大約一半的路,現在你在「E」部分(如果你幸運的話)
- 移到單詞中的下一個字母上並重復。
這一切工作,因爲字典是秩序井然,大家都一致認爲A是第一個字母,B是第二等的另一種方式來看待它是該字母是一樣的東西作爲不同名稱的數字[0 - 25]。
+0
有沒有一種方法可以告訴我一個如何使用帶字母的字符串來搜索文本文檔的例子?我仍然有點困惑! – Nervoxin
0
二進制搜索串實施了C.
char *lineptr[MAXLINE] //Array of char pointers stores the address of string
int binsrch(char srch[],int low,int high)
{
int mid;
if(high>=low){
mid=(low+high)/2;
if(strcmp(srch,lineptr[mid])<0) //compare string stored in srch and lineptr[mid]
return binsrch(srch,low,mid-1,count);
else if(strncmp(srch,lineptr[mid],count)>0)
return binsrch(srch,mid+1,high,count);
else
return mid; // Found
}
return -1; //Not found
}
相關問題
- 1. 使用二進制搜索
- 2. 使用javascript進行二進制搜索
- 3. 如何在二維數組中使用二進制搜索?
- 4. 在C中使用二進制搜索函數查找數組中的單詞?
- 5. 使用類的二進制搜索樹
- 6. Python的RotationCount使用二進制搜索
- 7. 使用Python的二進制搜索
- 8. 僅使用正確的單詞進行全文搜索
- 9. 使用二進制搜索錯誤?
- 10. 使用python執行二進制搜索
- 11. 二進制搜索查詢使用SQL
- 12. 如何找到使用二進制搜索的用戶號碼
- 13. 使用二維數組在C++中進行二進制搜索
- 14. 使用ASCII字符和進行二進制搜索字符串?
- 15. 使用fgetc搜索字詞
- 16. 使用二進制搜索算法搜索隨機數中的數字集
- 17. 如何使用UISearchBar在數組的字符串中搜索第二個單詞?
- 18. 使用二進制搜索搜索矢量的上限
- 19. 使用二進制搜索的Java前綴搜索
- 20. 僅使用Java搜索Google結果而不使用URL
- 21. 使用PHP搜索YouTube,使用搜索詞中的多個單詞
- 22. 使用索引搜索相似單詞
- 23. 使用Java搜索二進制文件中的字節序列
- 24. 使用二進制搜索(C#)搜索分類列表
- 25. 如何使用二進制搜索比較x509certificates
- 26. 如何使用遞歸創建二進制搜索
- 27. 如何在java中使用bluej實現二進制搜索?
- 28. 如何使用MySQL實現二進制搜索?
- 29. 如何在STL地圖上使用二進制搜索
- 30. 使用Solr進行多詞搜索
你如何使用它的數字呢?什麼可以阻止你這樣做的話? – Oleg
下面是一個快速谷歌搜索良率的演示實現:[GitHub Gist:BinarySearch.java](https://gist.github.com/aviraldg/2195495)。這只是一種常規算法,比較像'<'是由'compareTo'交換,以便處理像'String'這樣的對象。 – Zabuza
@Nevoxin如果用戶回答你的問題,也請接受他的回答([接受答案:它是如何工作的?](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-工作))。如果不是,那麼請說明還沒有答案,這是StackOverflow的重要組成部分,非常感謝。 – Zabuza