First Fit Code 没有像我想象的那样执行

问题描述

所以我这里有一个代码,假设对 MSize[array] 大于或等于 LSize[array] 的东西进行排序,它应该对 MSize 和 LSize 进行排序。然后 MSize[array] 和 LSize[Array] 将对齐。它是 First Fit,但它并没有像预期的那样工作。

public class Test5 {

    public static void main(String[] args) {
        int[] MSize = {50,80,40};
        int[] LSize = {50,30,70,40,70};
        boolean[] check = new boolean[MSize.length]; 
        int[] check2 = new int [MSize.length]; // to skip when LSize is already taken
        for(int i = 0; i <MSize.length; i++) {
            check2[i] = -1; // did this because check2 will be 0 and 0 will be used for LSize array
        }
        for(int counter = 0; counter<MSize.length; counter++) {
            for(int s = 0; s<LSize.length; s++) {
                boolean find = false; // Skips LSize[s] if it is already taken
                for(int n : check2) {
                    if(n == s) {
                        find = true;
                        continue;
                    }
                    if(n != s) {

                        break;
                    }
                }
                if(find == false) {
                    int lSize = LSize[counter];
                    MSize[counter] = MSize[counter] + 1;
                
                    if(MSize[counter] > LSize[s]) {
                        lSize = LSize[counter];
                        LSize[counter] = LSize[s];
                        LSize[s] = lSize;
                        check[counter] = true;
                    }
                    else {
                        check[counter] = false;
                    }
                    MSize[counter] = MSize[counter] - 1;
                }
                check2[counter] = s;
            }
        }
        for(int a = 0; a<MSize.length; a++) {
            if(check[a] == true) 
            {
                System.out.println(MSize[a] + " "+ LSize[a]);
            }
            if(check[a] == false)
            {
                System.out.println(MSize[a] +" "+ "Free");
            }
        }
        
    }
    
}

预期输出 50 = 50 | 80 = 30 | 40 = 40 | 20 = 免费

实际输出 50 = 免费 | 80 = 40 | 40 = 免费 | 20 = 免费

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)