有一个线性时间算法(或二次时间算法由Knuth的&赛普拉斯)。它采用SMAWK和“均匀”是指:
http://en.wikipedia.org/wiki/Word_wrap#Minimum_raggedness打破文本均匀成最大宽度的线均匀地打破文本到一定数目的行
是否有一个算法或算法上方将考虑我想文打入的行数凹成本函数,而不是最大线宽度?
换句话说,我正在寻找一个线断裂(或段的形成,或换行)算法,其中所述输入是线的所希望的数量,而不是所期望的线宽度。
只是为了描述实际上不可用的方法:每个字对之间有N个字和N-1个空格,M是所需的行数(M < = N)。每个空间之后可能最多只有一个(可能为零)换行符。现在,算法会尝试在每个可能的组合中放置中断,计算“粗糙”并返回最好的一个。如何更快地做到这一点?
你能对“毛糙”解释一下吗?你如何确定哪个结果比另一个更好?没有评估 - 你可能只是返回一个随机插入的换行符,但我认为情况并非如此。 – amit 2012-03-01 18:53:03
文本左对齐 - 也就是说,右边可能有剩余的空白,我们称之为废物。换句话说,浪费是最大(最佳,理想)线宽与实际线宽之间的差异。现在我们计算废物的平方根,所以我们惩罚真正错误的东西,将所有废物平方相加在一起,这就是“粗糙”。我们只是尽量避免差距,即我们希望线条尽可能具有相似的宽度。顺便说一句,这一切都在上面的维基百科链接。 – 2012-03-01 19:02:21