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