-1

我有一个算法可以根据某些条件进行装箱。我发现算法的流程对于读者来说有点复杂。

您可以在下面找到开发的 Java 代码。此代码是否有一个非常简化的替代流程?

void binpack() {
boolean set=false, cmap=false;
        while(set==false) {
            set=true;
            cmap=false;
            pack[k.cnt]=new bins(k.lim, k.ptim);
            for(int i=0;i<tot;i++) {           
                int s1,s2;
                if(jm[i][1]==0) {
                    s1=jm[i][0]; 
                    set=false;

                    else if(pack[k.cnt].pushk<k.lim) {
                        for(int j=0;j<pack[k.cnt].pushk;j++) {
                            s2=pack[k.cnt].binjm[j][0];
                            for (Iterator<Integer> g= list[s1].iterator(); g.hasNext();) {

    }
}

笔记:

ptim-->现在时间

etim-->结束时间

限制-->限制

4

2 回答 2

1

我脑子里有几件事:

  1. 变量名应该更具表现力。不要缩写,尤其是不要保存一两个字符(例如ptim,,chk()
  2. 在左括号之前和右括号之前,在运算符之后和之前放置空格等等。这听起来很愚蠢,但您会惊讶于您的代码将变得多么容易阅读。
  3. 避免不必要的布尔比较(例如if ( bool == false )应该是if ( !bool )
  4. 避免单行ifs 或whiles,使用适当的{}块。
  5. 如果不需要,不要预先声明变量。
  6. 而不是嵌套循环中的双中断结构,而是 break一个标签。
  7. 最重要的是:将其中一些循环分解为方法。
于 2011-12-20T22:05:16.583 回答
1

首先:不要为了节省一些输入而缩写变量。这会导致像这样的混淆难以理解的代码。

其次,你听说过 java.util.Map 吗?

于 2011-12-20T22:06:02.013 回答