我有一個包含大約30K首歌曲名稱的文件。我必須使用這個列表來自動建立AJAX文本。 一些名稱也以數字開頭。我的問題是我可以在這個列表上進行二進制搜索嗎?如果是,如何?在字符串列表中進行二進制搜索
回答
首先排序列表;
假設用戶輸入的第一個字母是「A」;
以高= 0和低=字符串數量-1開頭;
然後,你可以定義一個高和低指數,其中高就是以「A」開頭的,低的是,有一個字符串的第一個索引與「A」開頭的最後一個索引。通過兩個二進制搜索可以實現。
因此,如果輸入的下一個字母是「B」,那麼您在上面定義的高低範圍內進行另一個二分搜索,然後再用兩個二進制搜索再次調整高和低。確保你搜索字符串的高低之間的第二個字符與「B」匹配等:) :)
注意:我建議使用數據庫來這樣做,但正如你所查詢的,如果有任何方式使用二進制搜索,我回答這樣:)
簡單的SQL查詢:SELECT column_name FROM table_name WHERE column_name LIKE 'prefix%'
選擇那些字符串開始與存儲在「表名」表列「COLUMN_NAME」
大跌倒在這裏是你必須填充和搜索每個請求30,000元素的數組。 – Orangepill
@Orangepill:我相信該列表已預先填充。並且搜索是二分搜索,所以lg(30,000)<= 16(其中,lg = log2)因此每一步最多會有16 + 16 = 32個比較。 – Fallen
如果我將使用數據庫,每當用戶按下某個鍵時,我都不需要查詢數據庫嗎? – silverflash
你可以使用mixed array_search (mixed $needle , array $haystack [, bool $strict = false ])
- 1. 在字符串列表一串二進制搜索
- 2. 使用ASCII字符和進行二進制搜索字符串?
- 3. 二進制搜索字符串數組
- 4. 二進制搜索樹到字符串
- 5. 二進制搜索字符串數組
- 6. 在Python中執行二進制搜索字符串前綴
- 7. 二進制搜索樹字符串搜索
- 8. 在單個鏈接列表上進行二進制搜索
- 9. 在有序鏈接列表上進行二進制搜索
- 10. 從字符串到二進制列表
- 11. 從字符串反序列化二進制搜索樹
- 12. 在java中的二進制搜索字符串
- 13. 在大的二進制文件中搜索字符串
- 14. 在C++字符串上進行二進制搜索不起作用
- 15. 執行二進制搜索
- 16. 搜索二進制表
- 17. 按字符串長度對字符串排序後的字符串進行二進制搜索
- 18. 用二進制搜索填充列表
- 19. 二進制搜索遞減列表?
- 20. 二進制搜索對象列表?
- 21. 在JavaScript中執行二進制搜索
- 22. 使用javascript進行二進制搜索
- 23. 在列表中執行二進制搜索 - Python
- 24. 二進制搜索
- 25. 二進制搜索
- 26. 二進制搜索
- 27. 二進制搜索
- 28. 爲C中的字符串實現二進制搜索樹
- 29. 字符串中的二進制搜索多維數組
- 30. 插入字符串的二進制搜索。錯誤在哪裏?
定義「前綴」「二進制搜索「,請。 您希望結果如何?是一個下拉菜單嗎? – silkfire
使用數據庫...不要試圖用這麼大的文件來做這件事。 – Orangepill
@silkfire是的,它會顯示在谷歌 – silverflash