最小总体等待时间

题目:
同时有n个任务需要计算机后台处理,但是每次只能处理一个任务,其他任务处于等待。系统总体等待时间是每个任务的等待时间之和。如何安排任务的处理顺序使得系统总体等待时间最小。

输入格式:
第一行输入整数n,代表任务的个数,1<n<100。第二行输入n个整数,代表每个任务需要处理的时间,每个任务处理的时间都小于100。

输出格式:
输出最小的总体等待时间。

输入样例:
2
3 5

输出样例:
3

注意:
由于每一个任务执行时,剩下的任务都在等待,所以每一个任务都要加上自己所等待的时间(除了第一个任务不用加),最后才会得到正确的总体等待时间。

代码如下:

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int i;
		int j;
		int temp = 0;
		int sum = 0;
		int n = in.nextInt();
		int [] arr = new int [n];
		for(i=0;i<arr.length;i++){
			arr[i] = in.nextInt();
		}
		for(i=0;i<arr.length;i++){
			for(j=i+1;j<arr.length;j++){
				if(arr[i]>arr[j]){
					temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
        for(i=1;i<arr.length;i++){
            arr[i]+=arr[i-1];
        }
		for(j=0;j<arr.length-1;j++){
			sum+=arr[j];
		}
		System.out.println(sum);
	}
}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于matlap的遗传算法带时间窗是一种优化算法,用于解决具有时间窗限制的问题。在一个问题中,有一组任务需要在特定时间窗内完成。而遗传算法是一种基于生物进化原理的算法,可用于求解优化问题。 基于matlap的遗传算法带时间窗的实现主要包含以下步骤: 1. 确定问题的目标函数:根据问题的具体要求,确定任务的优化目标,例如最小总体花费或最小化总等待时间。 2. 定义编码方式:将每个任务表示为染色体,染色体中的基因表示任务的顺序。同时,为每个任务设置一个时间窗限制。 3. 初始化种群:随机生成一组初始染色体作为种群,并根据时间窗限制进行修正。 4. 交叉和变异:通过交叉和变异操作改变染色体的基因顺序,从而产生新的个体。其中,交叉操作将两个染色体的一部分基因进行互换,而变异操作则随机改变染色体中的某个基因。 5. 选择:根据染色体的适应度函数值,选择一组适应度较高的个体作为下一代种群。 6. 迭代优化:重复进行交叉、变异和选择操作,直到达到停止准则(例如,达到最大迭代次数或找到满足问题要求的解)。 通过以上步骤,基于matlap的遗传算法带时间窗的优化算法可以有效地求解带有时间窗限制的问题。该算法在实际应用中可以用于优化各类排程、路径规划等问题,提高任务完成效率,降低整体成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值