当前位置: 首页 > news >正文

Johnson算法 流水线问题 java实现

某印刷厂有 6项加工任务J1,J2,J3,J4,J5,J6,需要在两台机器Mi和M2上完
成。
在机器Mi上各任务所需时间为5,1,8,5,3,4单位;
在机器M2上各任务所需时间为7,2,2,4,7,4单位。
即时间矩阵为:
T1 = {5, 1, 8, 5, 3 ,4}
T2 = {7, 2, 2, 4, 7, 4}


请解决以下问题:
1.给出任务的最优加工顺序,使得总加工时间最短;
2.计算加工完成所有任务的最短总时间;

算法流程:

1. 把ai<=bi 的放在数组list1,把ai>bi放在数组list2中

2. 把list1进行从小到大排序,list2从大到小排序

3. 把list1和list2进行合并,list1在前list2在后,这个顺序即为加工的顺序

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] A = new int[n];
        for (int i = 0; i < n; i++) {
            A[i] = sc.nextInt();
        }
        int[] B = new int[n];
        for (int i = 0; i < n; i++) {
            B[i] = sc.nextInt();
        }

        List<int[]> list1 = new ArrayList<>();
        List<int[]> list2 = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            if (A[i] <= B[i]) {
                list1.add(new int[]{A[i], B[i]});
            } else {
                list2.add(new int[]{A[i], B[i]});
            }
        }
        list1.sort((o1, o2) -> o1[0] - o2[0]);
        list2.sort((o1, o2) -> o2[1] - o1[1]);
        List<int[]> list = new ArrayList<>();
        list.addAll(list1);
        list.addAll(list2);
        int AA = 0;
        int BB = 0;
        for(int[] arrs : list){
            AA+=arrs[0];
            BB = Math.max(AA,BB) + arrs[1];
        }
        System.out.println(Math.max(AA,BB));

    }

 list中即为最优的顺序

最终输出结果为最短时间

相关文章:

  • 下一代楼宇自控的中枢神经:ARM终端的生态
  • 1.ElasticSearch-入门基础操作
  • 从零开始学java--泛型(1)
  • 辛格迪客户案例 | 北京舒曼德医药实施电子合约系统(eSign)
  • UDP怎么样实现可靠传输?
  • zk源码—3.单机和集群通信原理二
  • Python 字典和集合(泛映射类型)
  • 无缝集成Docker与Maven:docker-maven-plugin实战指南
  • Docker常用命令
  • Microsoft Defender Antivirus Service服务占用CPU过高
  • Ansible(7)——管理机密与事实
  • 按键长按代码
  • CentOS 7安装Python3.12
  • InternVideo2.5:Empowering Video MLLMs with Long and Rich Context Modeling
  • Sublime Text使用教程(用Sublime Text编写C语言程序)
  • Redis如何判断哨兵模式下节点之间数据是否一致
  • UniappX动态引入在线字体图标,不兼容css时可用。
  • 《P3601 签到题》
  • 力扣hot100【链表】
  • 克魔助手(Kemob)安装与注册完整教程 - Windows/macOS双平台指南
  • 上海第四批土拍成交额97亿元:杨浦宅地成交楼板单价半年涨近7000元
  • 中非民间对话在赞比亚举行
  • 中方是否认同俄方关于新纳粹主义观点?外交部:联大曾多次通过相关决议
  • 教育部、国家发改委联合启动实施教师教育能力提升工程
  • 阿森纳被打得毫无脾气,回天无力的阿尔特塔只剩嘴硬
  • 波音公司计划于2027年交付新版“空军一号”飞机