天天看點

careercup-排序和查找 11.5

11.5 有個排序後的字元串數組,其中散布着一些空字元串,編寫一個方法,找出給定字元串的位置。

解法:

如果沒有那些空字元串,就可以直接使用二分查找法。比較待查找字元串str和數組的中間元素,然後繼續搜尋下去。針對數組中散布一些空字元串的情形,我們可以對二分查找法稍作修改,所需的修改就是mid進行比較的地方,如果mid為空字元串,就将mid換到離它最近的非空字元串的位置。

C++實作代碼:

繼續閱讀