贪心算法背包问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法设计与分析实验报告

题目:贪心算法背包问题

专业:JA V A技术xx——xxx班

学号:

姓名:

指导老师:

实验三:贪心算法背包问题

一、实验目的与要求

1、掌握背包问题的算法

2、初步掌握贪心算法

二、实验题:

问题描述:与0-1背包问题相似,给定n种物品和一个背包。物品i的重量是wi,其价值为vi,背包的容量为c。与0-1背包问题不同的是,在选择物品i装入背包时,背包问题的解决可以选择物品i的一部分,而不一定要全部装入背包,1< i < n。

三、实验代码

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class er extends JFrame {

private static final long serialVersionUID = -1508220487443708466L;

private static final int width = 360;// 面板的宽度

private static final int height = 300;// 面板的高度

public int M;

public int[] w;

public int[] p;

public int length;

er() {

// 初始Frame参数设置

this.setTitle("贪心算法");

setDefaultCloseOperation(EXIT_ON_CLOSE);

setSize(width, height);

Container c = getContentPane();

c.setLayout(new BoxLayout(c, BoxLayout.Y_AXIS));

setLocation(350, 150);

// 声明一些字体样式

Font topF1 = new Font("宋体", Font.BOLD, 28);

Font black15 = new Font("宋体", Font.PLAIN, 20);

Font bold10 = new Font("宋体", Font.BOLD, 15);

// 声明工具栏及属性设置

JPanel barPanel = new JPanel();

JMenuBar topBar = new JMenuBar();

topBar.setLocation(1, 1);

barPanel.add(topBar);

// 面板1和顶部标签属性设置

JPanel p1 = new JPanel();

JLabel topLabel = new JLabel("背包问题");

topLabel.setForeground(Color.blue);

topLabel.setFont(topF1);

p1.add(topLabel);

// 中间面板和标签及输入框属性设置

JPanel p2 = new JPanel();

p2.setLayout(new BoxLayout(p2, BoxLayout.Y_AXIS)); JLabel wLabel = new JLabel("请输入重量:");

JLabel pLabel = new JLabel("请输入效益:");

wLabel.setFont(black15);

pLabel.setFont(black15);

//

final JTextField wText = new JTextField(8);

final JTextField pText = new JTextField(8);

// wText.setText("10,8,7,5,9,6");

// pText.setText("15,14,7,10,17,7");

p2.add(wLabel);

p2.add(wText);

p2.add(pLabel);

p2.add(pText);

//

// 中下部面板和标签属性设置

JPanel p3 = new JPanel();

JLabel bottomLabel = new JLabel(

" 注意:数据输入时请添加分割符','"); bottomLabel.setFont(bold10);

bottomLabel.setForeground(Color.red);

bottomLabel.setHorizontalAlignment(SwingConstants.RIGHT); p3.add(bottomLabel);

//

JPanel p5 = new JPanel();

p5.setLayout(new BoxLayout(p5, BoxLayout.Y_AXIS)); JLabel mLabel = new JLabel("请输入背包总重量:"); mLabel.setFont(black15);

final JTextField mText = new JTextField(8);

p5.add(mLabel);

p5.add(mText);

// 面板和按钮的设置

JPanel p4 = new JPanel();

JButton submit = new JButton("确定");

submit.addActionListener(new ActionListener() {

相关文档
最新文档