微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。