0 0

求大牛帮忙优化一段程序20

待优化程序是这样的:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test {  
    //现在有n种楼,每种楼的面积已知,
	//给定一个地块,地块总面积已知,要求每种楼摆多少个能满足总面积小于地块面积并且此地块不能再放楼的所有组合 
	
	//统计结果工多少条
	private static int i;
    public static void main(String[] args) {  
         
    	//第一二三种楼的面积分别为 3 7 11, 假设是整数 
        int[] bAreas = {8000,3000,4000,4500,5000,5500};  

        //某块地的面积   
        int availArea = 200000;  
        //上一次的结果 
        int[] result = new int[bAreas.length];  
        //收集结果   
        List<int[]> list = new ArrayList<int[]>();  
        calc(bAreas, availArea, 0, result, list);  
        System.out.println(i);
    }  
  
    public static void calc(int[] bAreas, int availArea, int from, final int[] lastResult, List<int[]> list) {  
        int countOfKind = bAreas.length;  
        int leftArea = availArea;  
        int[] result = Arrays.copyOf(lastResult, countOfKind);  
        int sum=0;  
        for (int i = from; i < countOfKind; i++) {  
            int bArea = bAreas[i];  
            int bCount = leftArea / bArea;  
            result[i] = bCount;  
            leftArea = leftArea % bArea;  
          
              
            //递归  
            int recursionTimes = bCount;  
            int nextLeftArea = leftArea;  
            int[] nextResut = Arrays.copyOf(result, countOfKind);  
            while( (i != countOfKind - 1) && recursionTimes > 0){  
                nextLeftArea += bArea;  
                nextResut[i] = --recursionTimes;  
                calc(bAreas, nextLeftArea, i+1, nextResut, list);  
            }  
              
        }  
        for(int i = 0;i < result.length;i++){
        	System.out.print(result[i]+" ");
        	sum+=(result[i]*bAreas[i]);
        }
        System.out.println();
        //每种方案的所有楼的面积总数
        System.out.println(sum);
        i++;
    }  
      
}  

此程序用的循环里面进行递归调用,肯定会很慢,当我的楼的数组增加到10种的时候 需要几个小时才能求出所有结果 请大牛帮忙优化一下  如果有其他更好的不用递归的算法 那更好了
2012年7月12日 15:48
目前还没有答案

相关推荐

    大牛直播播放sdk

    "大牛直播SDK"就是这样一个强大的工具,旨在为开发者提供一个全方位、高效的直播播放解决方案。这款SDK以其强大的功能和广泛的适应性,能够播放RTMP、HLS等多种流媒体格式,并且支持播放MP4等常见视频文件,极大地...

    大牛教授MySQL之SQL语句最优化技术

    在数据库管理领域,MySQL是一个广泛使用的开源关系型数据库系统,其高效性和灵活性使其成为许多企业和开发者的选择。然而,随着数据量的增长,SQL查询性能优化变得至关重要。本篇将深入探讨MySQL中的SQL语句最优化...

    通达信指标公式源码超级大牛主图 源码.doc

    本资源是一个基于通达信指标公式的源码,用于生成一个超级大牛主图。该资源主要介绍了如何使用通达信指标公式来绘制一个复杂的技术指标图形,包括大牛线、牛熊线、死忘线等多种线形。 一、通达信指标公式简介 ...

    大牛讲解的MySQL介绍及性能优化 PPT

    MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,尤其在互联网行业中广泛应用于网站和应用程序的数据存储。这篇PPT由大牛主讲,旨在深入浅出地介绍MySQL的基础知识,并探讨如何进行性能优化,以确保高效...

    大牛总结 Oracle性能优化

    Oracle性能优化是数据库管理员和开发人员关注的重要领域,它涉及到一系列技术、工具和策略,旨在提升Oracle数据库的运行效率,减少资源消耗,提高系统响应速度,以及改善用户体验。以下是对Oracle性能优化的详细阐述...

    最牛的一键优化工具

    一键优化这一特性意味着它具有简洁易用的界面和高效的处理能力,让即便是电脑初学者也能轻松进行系统优化。 首先,我们要理解优化工具的主要功能。它们通常包括清理垃圾文件、管理启动项、优化内存使用、修复注册表...

    Python小白到大牛-视频笔记

    《Python小白到大牛》是一本详尽的Python学习指南,旨在帮助初学者从零基础逐渐精通Python编程。这本书按照四个部分逐步展开:基础、进阶、实用库和项目实战,覆盖了Python语言的各个方面。 在第一篇Python基础中,...

    大牛-高级教程MySQL性能优化实战

    MySQL性能优化是数据库管理员和开发人员在处理大数据量和高并发场景时的必备技能。本教程将深入探讨如何提升MySQL数据库的性能,确保系统能够高效、稳定地运行。以下是关于MySQL性能优化的一些关键知识点: 1. **...

    大牛出手Oracle SQL优化实例讲解

    1.Oracle如何得到一个很大的表 2.loop insert 实例 3.autotrace验证索引的性能到底有多大? 4.EXPLAIN验证SQL是否走索引 5.结合autotrace创建并验证函数索引 6.sql trace分析工具--TKPROF详细讲解 7.V$SQL视图详解加...

    递归大牛4年生小牛问题

    这段代码的关键在于使用了一个循环来迭代每年的情况,并通过递归调用`Gon`函数来计算前三年的牛的数量,然后将这些数量累加到总数量上。 #### 方法二:直接递归实现 第二种实现方式更为简洁,直接利用递归的性质:...

    迷你快车大牛增强版支持迅雷专用链

    迷你快车 大牛增强版 1.3.0.1045 支持迅雷专用链 大牛增强版说明: 去捆绑软件,支持迅雷、WEB迅雷专用链,支持世界之窗、遨游、IE浏览器。 安装优化版后需要重启浏览器。 迷你快车1.3版(1.3.0.1045cn)的更新日志...

    数据库大牛是怎么炼成的

    通过阅读《我的数据库学习“曲线”--牛新庄博士自传.pdf》这样的书籍,你可以从一位数据库专家的经验中学习,了解他们是如何从初学者一步步成长为大牛的,包括他们在学习过程中遇到的挑战、解决的问题以及成长的心路...

    资深大牛全方位剖析 iOS 高级面试

    资深大牛全方位剖析: UI相关 Runtime Runloop OC底层 Block Animation 音视频学习从零到整(2) 音视频学习从零到整(1) 性能优化 网络相关 探讨iOS 中图片的解压缩到渲染全过程 数据结构与算法 数据安全及加密 设计...

    一位技术大牛的忠告

    一位技术大牛对我们IT从业者的建议,相信每位新入职场的IT人士都能有所收获

    通达信指标公式源码 黑马大神抓大牛起爆点副图.doc

    通达信指标公式源码 黑马大神抓大牛起爆点副图.doc

    通达信指标公式源码超级大牛指标 副图源码.doc

    本文档分享的是一份名为“超级大牛指标”的副图源码,适用于通达信平台,旨在帮助用户识别股票市场的趋势变化,以便进行更精准的投资决策。 源码中的关键变量和计算方法如下: 1. AAA1: 这是计算9个不同周期简单...

    大牛助手1.2.7

    大牛助手1.2.7

    通达信指标公式源码超级大牛主图 源码.pdf

    在“通达信指标公式源码超级大牛主图 源码.pdf”中,我们看到的是一段用以构建自定义主图指标的源代码,该指标设计的目的是寻找潜在的大牛股,即有望持续上涨的股票。 源码中的关键变量和计算方法如下: 1. AAA1:...

    【股票指标公式下载】-【通达信】大牛主图(牛熊线、底背离、操盘).doc

    通达信大牛主图指标公式下载是一个功能强大且实用的股票技术指标公式,能够帮助投资者更好地分析股票走势和交易机会。但需要注意的是,任何技术指标都不能 guarantee投资收益,投资者仍需结合基本面分析和风险管理...

Global site tag (gtag.js) - Google Analytics