2016-01-17 124 views
-1

所以我想學習和實踐二分查找,但不幸的是無法理解二分查找如何可以爲對象列表或僅字符串工作。處理數字時看起來並不複雜。但是,你如何實際執行二進制搜索實例與對象的列表,其中保存屬性名稱作爲一個字符串值。C#二進制搜索

+1

爲什麼這應該更復雜? –

回答

0

你可以用數字相同的方式來做,唯一的區別是,你訪問你正在查看的實例的屬性。例如items[x].Value而不是items[x]

+0

我猜OP是在談論如何比較字符串? – Viru

1

二進制搜索假定已排序的集合。所以,你必須提供一個compare(a,b)函數。作爲比較的結果,該函數將返回-1,0或1。數字或字符的函數實現是微不足道的。但是,您可以實現更復雜的邏輯,將一個或多個對象屬性考慮在內。只要您提供該功能,就可以對任何對象集合進行排序,並且可以對該集合應用二進制搜索。