1. 程式人生 > >貪心演算法-最優裝載問題

貪心演算法-最優裝載問題

最優裝載問題。給出n個物體,第i個物體重量為w[i]。選擇儘量多的物體,使得總重量不超過C。 
【分析】 
由於只關心物體的數量,所有裝重的沒有裝輕的划算。只需把所有物體按重量從小到大排序,一次選擇每個物體,直到裝不下為止。這是一種典型的貪心演算法,只顧眼前,但能得到最優解。
--------------------- 
作者:za30312 
來源:CSDN 
原文:https://blog.csdn.net/za30312/article/details/78253318 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

import java.util.*;
public class Zuoyouzhuangzai {
    public static void main(String args[]){
        Scanner in=new Scanner(System.in);
        while(in.hasNext()){
            int n=in.nextInt();
            List list=new ArrayList<Integer>();
            for(int i=0;i<n;i++){
                list.add(in.nextInt());
            }
            //從小到大排序
            Collections.sort(list);
            int c=in.nextInt();
            int k=0;
            //貪心裝載
            for(int j=0;j<n;j++){
                if(c>=(int)list.get(j)){
                    c-=(int)list.get(j);
                    k++;
                }else{
                    break;
                }
            }
            System.out.println(k);
        }
    }
}