作业帮 > 综合 > 作业

java算法设计问题(贪心算法)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/24 08:06:15
java算法设计问题(贪心算法)
给定k 个排好序的序列s1 ,s2 ,...,sk ,用 2 路合并算法将这k 个序列合并成一个序列.
假设所采用的 2 路合并算法合并 2 个长度分别为m和n的序列需要m + n -1次比较.试设
计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少.
数据的输入:
由文件input.txt给出输入数据.第一行有1 个正整数k,表示有k个待合并序列.接下
来的1 行中,有k个正整数,表示k个待合并序列的长度.
输入文件示例 输出文件示例
input.txt output.txt
4 78 52
5 12 11 2
我的解题思路是:
因为我对其他的java 集合框架不熟,所以我才用比较大众的一维数组来保存文件的数据
要解决的是问题是:(只求最小的合并次数)
对一堆Int型数据,每次从中选2个最小的数并把和的结果换回原来的一堆数中去,依次进行递归之后,最后的数只剩下一个.
比如有4个数为 1 ,2 ,3,4.
min=(1+2)+((1+2)+3)+(((1+2)+3)+4)=19(次)
求大神告知应该用java的什么集合框架来处理上面的问题,最好带点思想加代码.
第一、你说的那个东西不叫框架
第二、你用的算法不是多路合并
第三、题目不是让你合并、是让你找出最优解
解答,我晕这题目有啥解答的啊,你不是自己编的吧,假如合并两个有序序列只要m+n-1次比较,那么不单单这两个序列各自有序,同时其中一个序列任意元素大于另外一个序列所有元素
那么答案就是按照k的序号从前想后依次合并啊