在给出数百兆字节不同大小的资产的情况下,填充一组蓝光光盘的最佳算法是什么?
我正在尝试整合大量旧的CDROMS,DVD和小型硬盘,并将所有内容放在由MD5签名索引的数据库中.肯定是一项艰巨的任务.
我目前所做的是按降序对资产大小(通常是目录大小)进行排序,开始插入填充列表中的最大资产,跳过任何不适合的资产,直到我用完资产.它几乎瞬间运行,但我不介意在必要时一夜之间运行.
它通常会给我95%或更高的利用率,但我确信有一种方法可以使用其他组合来提高效率.对于像磁盘映像这样的大型项目,我可以通过这种原始方法获得相当低的利用率.
我的想法是采取所有资产的组合,1然后是2,然后是3,...项目,并保持一个运行值,最高字节数<25,025,314,816字节,指向与之相加的数组.当我发现我一次拥有如此多的资产时,没有任何组合适合,停止并使用正在运行的最高计数器指向的数组.
这是最好的算法吗?
有2个Perl模块似乎可以完成任务,算法组合和算法组合.有什么建议更快,更稳定,更酷?
我的方案是编写一个脚本来计算大量目录的大小,并向我展示要刻录的数十个磁盘的最佳内容.
而且,我不想只是按文件填写文件,因为我想要在同一张光盘上的整个目录.