回溯法解决01背包问题算法_01背包问题伪代码

回溯法解决01背包问题算法_01背包问题伪代码0-1背包问题,在搜索过程中使用递归来完成。packagecom.test;classPack{intn=8;//物品个数intW=110;//背包总容量int[]Weights={1,11,21,23,33,43,45,55};//重量数组int[]Values={11,21,31,33,43,53,55,65};//价值数组intbestValu…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

0-1背包问题,在搜索过程中使用递归来完成。

package com.test;

class Pack {

int n = 8; //物品个数

int W = 110; //背包总容量

int[] Weights = {1,11,21,23,33,43,45,55}; //重量数组

int[] Values = {11,21,31,33,43,53,55,65}; //价值数组

int bestValue = 0; //获得的最大价值

//回溯搜索

void BackTrack(int depth,int preWeights,int preValues){

int currentWeight = preWeights;

int currentValue = preValues;

if(depth >= n){ //达到最大深度

if(bestValue < currentValue){

bestValue = currentValue;

}

return ;

}

if(currentWeight+Weights[depth] < W){ //是否满足约束条件

currentWeight +=Weights[depth];

currentValue +=Values[depth];

//选取了第i件物品

BackTrack(depth+1,currentWeight,currentValue); //递归求解下一个物品

//恢复背包的容量和价值

currentWeight -= Weights[depth];

currentValue -= Values[depth];

}

//不选取第i件物品

BackTrack(depth+1,currentWeight,currentValue);

}

public int GetBestValue(){

BackTrack(0,0,0);

return bestValue;

}

}

public class Test{

public static void main(String[] args) {

Pack pack = new Pack();

int bestValue = pack.GetBestValue();

System.out.println(“背包内最大物品价值为:”+bestValue);

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184059.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月9日 下午6:16
下一篇 2022年10月9日 下午6:36


相关推荐

  • centos搭建svn 服务器 并同步到web 目录(总结)

    centos搭建svn 服务器 并同步到web 目录(总结)

    2021年10月29日
    54
  • kmo检验和bartlett球形检验_轻松搞懂:球形压力容器如何焊接安装?[通俗易懂]

    kmo检验和bartlett球形检验_轻松搞懂:球形压力容器如何焊接安装?[通俗易懂]球形压力容器简称“球罐”,与其他形式的容器相比,其重量与体积之比最小,受力均匀,可以承受较高的压力,是工业中普遍应用的大容积定容储气罐。在冶金工厂中,球罐常用于贮存氧气、氮气及保护气体等,以供氧气炼钢、富氧鼓风、轧钢热处理炉及煤气置换等生产所需用气。球罐由球体壳板(分赤道带、下温带、下寒带、上温带、上寒带和极顶板)、支柱、操作平台及管件等组成。球罐按其结构型式分为桔瓣式和混合式两种。根据…

    2022年6月29日
    30
  • arcgis二次开发python-ArcGIS 二次开发专题 序「建议收藏」

    arcgis二次开发python-ArcGIS 二次开发专题 序「建议收藏」依据ArcGIS组件式开发及应用的目录结构,将系统性的学习ArcGIS二次开发的道路分为三个部分。这个系列包含以下三个部分:Part1基础1.前言1.1组件式GIS1.2ArcObject开发的特点与历史2.使用ArcGISEngine控件编程3.几何形体对象Geometry4.地图组成5.空间数据符号化6.空间数据管理7.空间分析8.空间数据编辑9.地图输出10…

    2022年7月23日
    14
  • 爬虫基本知识,如何发起请求,进行分析

    爬虫基本知识,如何发起请求,进行分析爬虫基础知识爬虫一个实战性很强的内容,下面是一些知识点,方便日后复习,具体还要去案例看看,随机应变。这是我的github爬虫仓库,欢迎大家clone进行学习和体验。一.网络爬虫概述定义网络蜘蛛(spider)、网络机器人(robot),抓取网络数据的程序其实就是用Python程序模仿人点击浏览器并访问网站,而且模仿的越像越好,让Web站点无法发现你不是人爬取数据的目的1、公司项目测试数据2、公司业务部门及其他部门所需数据3、数据分析企业获取数据方式1、公司自有数据2、第三方

    2022年10月3日
    1
  • 河北对口计算机专业一分一档6,600分以上830人!河北一市中考一分一档表出炉!…

    河北对口计算机专业一分一档6,600分以上830人!河北一市中考一分一档表出炉!…出分啦!承德市2021年中考成绩公布6月30日,承德市教育考试招生信息平台公布2021年承德市中考成绩一分一档表!今年承德中考文化和体育是630分,理化实验20分,总计是650分。据一分一档表显示今年承德中考600分以上是830人2021年承德市中考成绩一分一档表除承德外河北其他地市什么时候能查分呢?有粉丝在后台问,衡水什么时候可以查分,这不,衡水市中考成绩发布时间也来啦~衡水市一、中考成绩发布时…

    2022年7月13日
    28
  • idea断点调试详细步骤

    idea断点调试详细步骤idea 断点调试参考链接 https blog csdn net Applying article details

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号