我的任務是將名稱目錄拆分爲四個(近似)相等的塊。該目錄實際上是一個已經alphebatised的電話簿。解決方案必須是通用的,並且適用於任何目錄,而不僅僅是一個特定目錄。如果它幫助目錄是一個字符串數組。將按字母順序排列的列表拆分爲相等塊
例如四大塊爲一個目錄可能是:
A-E, F-L, M-S and T-Z
而另一個可能是
A-B, C-D, E-F and G-Z
我已經考慮剛剛分裂4目錄的大小,然後計數直到達到這個數字,並注意到入口開始的字母,但這不是特別優雅。
我的意思是:將目錄設爲100個條目。我可以將它除以4得到25(每個塊應該有多少條目)。通過條目到25,然後採取該條目應該給我在第一個塊的最後一項。但是,如果字母表中每個字母的條目數量差別很大,則這不起作用。 A-J都可以有一個條目,K可以有32個條目,這會使我的過程無用。
有僞代碼而不是特定的C實現將是有幫助的,但真正在正確的方向上的一個點將是一個很大的幫助。
這不是一個C-相關的問題,而是你所要求的我們給你的算法? – Eregrith
@Eregrith我會在C中這樣做,但我提到了僞代碼,因爲我認爲它對我來說實際上知道發生了什麼會更有用,而不僅僅是複製和破解別人的實現。 – mforrest