我有一個叫做get_chapter的函數,它將頁碼作爲參數並返回一個唯一的字符串,表示頁面所屬的章節,例如「The Story Continues 」。如果我在書外輸入頁碼,我會返回一個空字符串。建立書中的章節,賦予函數get_chapter(page_number)
第一頁是第0頁。章節是一組連續的頁面,給定的頁面只屬於一個章節。
你會推薦哪種算法來識別每個章節的頁面範圍?任何估計我需要調用get_chapter多少次?
我需要儘可能限制對get_chapter的調用。章節平均50000頁。書中大約有30000000頁!不知道有多少章。
如前所述,get_chapter返回類似「The Story Continues」的文本。所以沒有簡單的方法來確定章節的數量。 – Baz 2013-02-14 15:11:39
然後,你將不得不檢查很多頁面,因爲一章可以和單頁一樣短。也許是在同一章節中找到兩個頁面的二分搜索,然後從那裏向外擴展以找到邊界。如果每章有5,000頁,則可以相應地指示二分查找的第一次剪切。 – rossum 2013-02-14 16:08:08