向各位大侠请教把一个数组分割成几份的算法

36387893 2009-09-12 04:33:58
有一个n元的整形数组,要把它分成m份且每份数值之和大致相等。
比如a[6] = {1,2,7,4,5,3},分成3份则为{1,7}{2,5}{3,4}

现在能想到的就是用贪心算法。先对数组元素排序(从大到小),然后依次把匀速按序放到元素之和最小的那一份里,这样得出来可以基本满足条件。

请问有什么比较好的算法吗?请各位多多指教
...全文
272 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanwan 2009-09-15
  • 打赏
  • 举报
回复
max{sum(0,k)+sum(k+1,n)}
绿色夹克衫 2009-09-15
  • 打赏
  • 举报
回复
求最优是NP级的问题,用贪心求个近似就可以了!
jtacm 2009-09-14
  • 打赏
  • 举报
回复
LS的同志们说说怎么用DP做M=2得到情况,好吗?
PeacefulBY 2009-09-14
  • 打赏
  • 举报
回复
好像可以用最优化方法解决,先Mark下
wuyi8808 2009-09-14
  • 打赏
  • 举报
回复
比较困难,可能没有多少改进余地了。
  • 打赏
  • 举报
回复
觉得这个算法已经很不错了。
DP 难。

[Quote=引用楼主 36387893 的回复:]
有一个n元的整形数组,要把它分成m份且每份数值之和大致相等。
比如a[6] = {1,2,7,4,5,3},分成3份则为{1,7}{2,5}{3,4}

现在能想到的就是用贪心算法。先对数组元素排序(从大到小),然后依次把匀速按序放到元素之和最小的那一份里,这样得出来可以基本满足条件。

请问有什么比较好的算法吗?请各位多多指教
[/Quote]
PeacefulBY 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ccc_moriya 的回复:]
引用 2 楼 tanwan 的回复:
之前有dp题是把一列数组分成2份转化为差值最小的,现在大于2的话我也关注下看看,也是用DP做的...


什麼是DP??
[/Quote]
动态规划
ccc_moriya 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tanwan 的回复:]
之前有dp题是把一列数组分成2份转化为差值最小的,现在大于2的话我也关注下看看,也是用DP做的...
[/Quote]

什麼是DP??
36387893 2009-09-14
  • 打赏
  • 举报
回复
顶一下
tanwan 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 36387893 的回复:]
引用 2 楼 tanwan 的回复:
之前有dp题是把一列数组分成2份转化为差值最小的,现在大于2的话我也关注下看看,也是用DP做的...


这题用dp的思路是怎样的呢,请指教
[/Quote]
我也在关注...我想可以用DP...
36387893 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tanwan 的回复:]
之前有dp题是把一列数组分成2份转化为差值最小的,现在大于2的话我也关注下看看,也是用DP做的...
[/Quote]

这题用dp的思路是怎样的呢,请指教
tanwan 2009-09-12
  • 打赏
  • 举报
回复
之前有dp题是把一列数组分成2份转化为差值最小的,现在大于2的话我也关注下看看,也是用DP做的...
acdbxzyw 2009-09-12
  • 打赏
  • 举报
回复
用類似背包窮舉,額,能得到最優解,但是效率比較低。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧