【发布时间】:2017-04-25 01:58:44
【问题描述】:
嘿,我正在尝试为最近最少使用的分页算法编写模型。我对 Java 和一般编码比较陌生,只是在我的代码中找不到错误。
我想用二维数组实现空闲内存,当引用一行时,我将相应行中的位更改为 1,将相应列中的位更改为 0。然后我想将每一行中的元素相加并使用冒泡排序算法对它们进行排序。
这就是我的问题:似乎我无法正确进行加法或排序。我希望有人可以帮助我,因为似乎无论我尝试什么,它都不起作用。
这是我有问题的代码的一部分,因为它似乎在我无法发布整个代码的 stackoverflows 规则中。 page [][] 是我用来更改字节的二维数组。
我将非常感谢任何帮助,因为我正在缓慢但肯定地失去动力。
// array for bubblesort and adding up of rows
int sort[] = new int[page.length];
int sumtemp = 0;
int sum = 0;
for (int i = 0; i < page.length; i++) {
for (int j = 0; j < page[i].length; j++) {
sumtemp += page[i][j];
sum = sumtemp;
}
for (i = 0; i < page.length; i++)
sort[i] = sum;
sumtemp = 0;
}
// bubblesort
int n1 = sort.length;
int temp = 0;
for (int i = 0; i < n1; i++) {
for (int j = 1; j < (n1 - i); j++) {
if (sort[j - 1] > sort[j]) {
// sort
temp = sort[j - 1];
sort[j - 1] = sort[j];
sort[j] = temp;
}
}
}
我的输出:它一直工作到最后一个输出,要删除的页面应该是 5 而不是 4:
内存可以容纳多少页?
5
您要参考哪个页面?请选择一个介于 1 和 5 之间的数字。参考完毕,请输入
4
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1 1 1 0 1
0 0 0 0 0
要删除的页面 = 1
您要参考哪个页面?请选择一个介于 1 和 5 之间的数字。
参考完毕,请输入
3
0 0 0 0 0
0 0 0 0 0
1 1 0 1 1
1 1 0 0 1
0 0 0 0 0
要删除的页面 = 1
您要参考哪个页面?请选择一个介于 1 和 5 之间的数字。 参考完毕,请输入
1
0 1 1 1 1
0 0 0 0 0
0 1 0 1 1
0 1 0 0 1
0 0 0 0 0
要删除的页面 = 5
您要参考哪个页面?请选择一个介于 1 和 5 之间的数字。 参考完毕,请输入
2
0 0 1 1 1
1 0 1 1 1
0 0 0 1 1
0 0 0 0 1
0 0 0 0 0
要删除的页面 = 4
您要参考哪个页面?请选择一个介于 1 和 5 之间的数字。参考完毕,请输入
【问题讨论】:
-
您是否遇到任何错误?
-
不,我没有收到任何错误。我将使用控制台输出编辑我的问题。
标签: java arrays bubble-sort