回溯法解决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);

}

}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • PyCharm如何删除工程项目

    PyCharm如何删除工程项目1、在菜单中选择:file——>closeproject2、选择需要删除的项目右上角的“×”号进行删除工程项目3、找到工程项目的存放路径,删除对应的工程项目文件通过上诉操作即可在pycharm中删除工程文件。转载于:https://www.cnblogs.com/benpao1314/p/9679508.html…

  • webstrom格式化代码和常用的快捷键[通俗易懂]

    webstrom格式化代码和常用的快捷键[通俗易懂]在使用webstorm的时候,需要用到一些快捷键。 今天我就遇到以一个问题,就是我用java生成的html文档是不规范的,但是我需要将文档规范化排查一些问题。 1、打开webstrom。 2、File->Setting 3、搜索keyMap,进入keyMap设置页面,选择Eclipse方式。  如下图所示:           

  • 虚拟机安装centos7网络配置

    虚拟机安装centos7网络配置    在exsi主机上新安装了一台centos7,以下进行配置连接网络。    VmwarevSphere环境下网络标签一定要选择虚拟交换机类型,要不然即使是配置好网卡也连接不到网络如图1所示。如果是平时搭建在本地电脑实验使用的普通VMware软件,注意设置网络桥接,本地电脑网络使用的是无线则选择无线桥接,有线网络则。                …

  • oracle中varchar和char的区别_char跟varchar

    oracle中varchar和char的区别_char跟varchar1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,大部分情况下建议使用varchar2类型,可以保证更好的兼容性。注意:在oracle中varchar2的最大长…

    2022年10月26日
  • 如何利用计算机模拟分子生物学,分子生物学软件教学的经验浅谈.doc

    如何利用计算机模拟分子生物学,分子生物学软件教学的经验浅谈.doc分子生物学软件教学的经验浅谈分子生物学软件教学的经验浅谈摘要:分子生物学是生命科学和生物技术的基础学科,其教学尤其是实验教学得到了各个高等院校的普遍重视,但是对于应用性强的分子生物学软件的教学却长期以来受到忽视。笔者首次在厦门大学的夏季短学期中开设《分子生物学常用软件的应用》课程已有五余年,本文总结了分子生物学软件教学的经验,提出教学改进的建议,阐述了软件应用与实验设计的必要联系,为生物医学类学科…

  • bootstrap自定义样式-bootstrap侧边导航栏的实现[通俗易懂]

    bootstrap自定义样式-bootstrap侧边导航栏的实现[通俗易懂]1.侧滑栏使用定位fixed2.使用bootstrap响应式使用工具类visible-smvisible-xshidden-xshidden-sm等对不同屏幕适配3.侧滑栏的侧滑效果不使用jquery方法来实现,使用的是css3transforms属性进行div的移动,侧滑的动画效果使用的是css属性transition

发表回复

您的电子邮箱地址不会被公开。

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