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中即為最優的順序

最終輸出結果為最短時間

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900624.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

按鍵++,--在操作uint8_t類型(一個取值為1~10的數)中,在LCD中顯示兩位數字問題

問題概況 在執行按鍵&#xff0c;--過程中&#xff0c;本來數值為1~10.但是在執行過程中&#xff0c;發現數值在經過10數值后&#xff0c;后面的“0”會一直在LCD顯示屏中顯示。 就是執行操作中&#xff0c;從1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xf…

【QT】QTreeWidgetItem的checkState/setCheckState函數和isSelected/setSelected函數

目錄 1、函數原型1.1 checkState/setCheckState1.2 isSelected/setSelected2、功能用途3、示例QTreeWidget的checkState/setCheckState函數和isSelected/setSelected這兩組函數有著不同的用途,下面具體說明: 1、函數原型 1.1 checkState/setCheckState Qt::CheckState QTr…

005 vue項目結構 vue請求頁面執行流程(vue2)

文章目錄 vue項目結構vue請求頁面執行流程main.jsrouterHelloWorld.vueApp.vueindex.html vue項目結構 config目錄存放的是配置文件&#xff0c;比如index.js可以配置端口 node_modules存放的是該項目依賴的模塊&#xff0c;這些依賴的模塊在package.json中指定 src目錄分析 1…

匯豐xxx

1. Spring Boot 的了解&#xff0c;解決什么問題&#xff1f; 我的理解&#xff1a; Spring Boot 是一個基于 Spring 框架的快速開發腳手架&#xff0c;它簡化了 Spring 應用的初始搭建和開發過程。解決的問題&#xff1a; 簡化配置&#xff1a; 傳統的 Spring 應用需要大量的…

基于 Spring Boot 瑞吉外賣系統開發(一)

基于 Spring Boot 瑞吉外賣系統開發&#xff08;一&#xff09; 系統概述 系統功能 技術選型 初始項目和數據準備 初始項目和SQL文件下載 創建數據庫并導入數據 打開reggie項目 運行效果 主函數啟動項目&#xff0c;訪問URL&#xff1a; http://127.0.0.1:8080/backend/pag…

大型語言模型智能應用Coze、Dify、FastGPT、MaxKB 對比,選擇合適自己的LLM工具

大型語言模型智能應用Coze、Dify、FastGPT、MaxKB 對比&#xff0c;選擇合適自己的LLM工具 Coze、Dify、FastGPT 和 MaxKB 都是旨在幫助用戶構建基于大型語言模型 (LLM) 的智能應用的平臺。它們各自擁有獨特的功能和側重點&#xff0c;以下是對它們的簡要對比&#xff1a; Coz…

【項目管理】第6章 信息管理概論 --知識點整理

項目管理 相關文檔&#xff0c;希望互相學習&#xff0c;共同進步 風123456789&#xff5e;-CSDN博客 &#xff08;一&#xff09;知識總覽 項目管理知識域 知識點&#xff1a; &#xff08;項目管理概論、立項管理、十大知識域、配置與變更管理、績效域&#xff09; 對應&…

Zapier MCP:重塑跨應用自動化協作的技術實踐

引言&#xff1a;數字化協作的痛點與突破 在當今多工具協同的工作環境中&#xff0c;開發者與辦公人員常常面臨數據孤島、重復操作等效率瓶頸。Zapier推出的MCP&#xff08;Model Context Protocol&#xff09;協議通過標準化數據交互框架&#xff0c;為跨應用自動化提供了新的…

echart實現動態折線圖(vue3+ts)

最近接到個任務&#xff0c;需要用vue3實現動態折線圖。之前沒有用過&#xff0c;所以一路坎坷&#xff0c;現在記錄一下&#xff0c;以后也好回憶一下。 之前不清楚echart的繪制方式&#xff0c;以為是在第一秒的基礎上繪制第二秒&#xff0c;后面實驗過后&#xff0c;發現并…

Java學習——day24(反射進階:注解與動態代理)

文章目錄 1. 反射與注解2. 動態代理3. 實踐&#xff1a;編寫動態代理示例4. 注解定義與使用5. 動態代理6. 小結與思考 1. 反射與注解 注解&#xff1a;注解是 Java 提供的用于在代碼中添加元數據的機制。它不會影響程序的執行&#xff0c;但可以在運行時通過反射獲取和處理。反…

C++之nullptr

文章目錄 前言 一、NULL 1、代碼 2、結果 二、nullptr 1、代碼 2、結果 總結 前言 當我們談論空指針時,很難避免談及nullptr。nullptr是C++11引入的一個關鍵字,用來表示空指針。在C++中,空指針一直是一個容易引起混淆的問題,因為在早期版本的C++中,通常使用NULL來…

JavaScript惰性加載優化實例

這是之前的一位朋友的酒桌之談&#xff0c;他之前負責的一個電商項目&#xff0c;剛剛開發萬&#xff0c;首頁加載時間特別長&#xff0c;體驗很差&#xff0c;所以就開始排查&#xff0c;發現是在首頁一次性加載所有js導致的問題&#xff0c;這個問題在自己學習的時候并不明顯…

蘋果內購支付 Java 接口

支付流程&#xff0c;APP支付成功后 前端調用后端接口&#xff0c;后端接口將前端支付成功后拿到的憑據傳給蘋果服務器檢查&#xff0c;如果接口返回成功了&#xff0c;就視為支付。 代碼&#xff0c;productId就是蘋果開發者后臺提前設置好的 產品id public CommonResult<S…

數據庫中的數組: MySQL與StarRocks的數組操作解析

在現代數據處理中, 數組 (Array) 作為一種高效存儲和操作結構化數據的方式, 被廣泛應用于日志分析, 用戶行為統計, 標簽系統等場景. 然而, 不同數據庫對數組的支持差異顯著. 本文將以MySQL和StarRocks為例, 深入解析它們的數組操作能力, 并對比其適用場景. 文章目錄 一 為什么需…

LeetCode零錢兌換(動態規劃)

題目描述 給你一個整數數組 coins &#xff0c;表示不同面額的硬幣&#xff1b;以及一個整數 amount &#xff0c;表示總金額。 計算并返回可以湊成總金額所需的 最少的硬幣個數 。如果沒有任何一種硬幣組合能組成總金額&#xff0c;返回 -1 。 你可以認為每種硬幣的數量是無…

/sys/fs/cgroup/memory/memory.stat 關鍵指標說明

目錄 1. **total_rss**2. **total_inactive_file**3. **total_active_file**4. **shmem**5. **其他相關指標**總結 以下是/sys/fs/cgroup/memory/memory.stat文件中一些關鍵指標的詳細介紹&#xff0c;特別是與PostgreSQL相關的指標&#xff1a; 1. total_rss 定義&#xff1…

C++第14屆藍橋杯b組學習筆記

1. 日期統計 小藍現在有一個長度為 100100 的數組&#xff0c;數組中的每個元素的值都在 00 到 99 的范圍之內。數組中的元素從左至右如下所示&#xff1a; 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4…

[Effective C++]條款28:避免返回handles指向對象內部成分

. 在C中&#xff0c;返回指向對象內部成分的引用&#xff08;handles&#xff09;可能會導致封裝性降低和對象空懸問題。為了避免這些問題&#xff0c;可以通過返回const引用來限制對內部數據的修改&#xff0c;從而確保只讀訪問 1、返回內部引用對象 下面代碼中getData函數返…

PyTorch 學習筆記

環境&#xff1a;python3.8 PyTorch2.4.1cpu PyCharm 參考鏈接&#xff1a; 快速入門 — PyTorch 教程 2.6.0cu124 文檔 PyTorch 文檔 — PyTorch 2.4 文檔 快速入門 導入庫 import torch from torch import nn from torch.utils.data import DataLoader from torchvision …

windows開啟wsl與輕量級虛擬機管理

基于win 10 打造K8S應用開發環境&#xff08;wsl & kind&#xff09; 一、wsl子系統安裝 1.1 確認windows系統版本 cmd/powershell 或者win r 運行winver 操作系統要> 19044 1.2 開啟wsl功能 控制面板 -> 程序 -> 啟用或關閉Windows功能 開啟適用于Linux的…