我的任务是将名称目录拆分为四个(近似)相等的块。该目录实际上是一个已经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